首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在没有http的情况下匹配和替换域名?

如何在没有http的情况下匹配和替换域名?
EN

Stack Overflow用户
提问于 2014-05-06 07:42:35
回答 1查看 211关注 0票数 0

我想在一个字符串中搜索,如果找到一个域,删除它并留下剩余的内容。这些域的前面都不会有http或https。

要删除的示例字符串:

代码语言:javascript
复制
domain.com or
domain.something.us
domain.something.uk

我想,如果我使用通配符,它会起作用,但我做的不对。

代码语言:javascript
复制
$str = preg_replace( '/(?\.net|?\.org|?\.edu|?\.com)/', '', $str );

编辑:

因此,所有字符串通常以以下内容开头:

domain.com -这里有一些很长的绳子.

我想要做的是删除-之前的所有内容。不过,有时用户可能会忘记添加domain -。在这种情况下,它只需要返回字符串的其余部分。

产出如下:

domain.com -在这里很长时间了。

应改为:

这里有很长的时间。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-05-06 07:54:55

可以在im修饰符中使用以下正则表达式:

代码语言:javascript
复制
^((?:[a-z0-9-]+\.)*[a-z0-9-]+(?:\.[a-z]+){1,2}\s*-)\s*

它将匹配:

  • 所有域名
  • 任意数量的子域
  • .co.uk.co.in这样的多级two (只有两个级别)

请注意,它也将匹配许多无效域名。但我想,如果你要从一段文字中删除所有域名,那就不重要了。

Regex101 Demo

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/23488787

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档