我想在字符串中搜索,如果找到一个域,将其删除并留下剩余的内容。这些域名都不能以http或https开头。
我要删除的字符串示例:
domain.com or
domain.something.us
domain.something.uk
我想如果我使用一个通配符,它会工作,但我没有做正确的事情。
$str = preg_replace( '/(?'.net|?'.org|?'.edu|?'.com)/', '', $str );
编辑:所有字符串一般都以这个开头:
domain.com -这里有一些很长的字符串.....
我要做的是删除-
之前的所有内容。但是,有时用户可能会忘记添加domain -
。在这种情况下,它只需要返回字符串的其余部分。
输出将是:
domain.com -这里有些长。
应转换为:
这里有点长
您可以使用以下正则表达式与im
修饰符:
^((?:[a-z0-9-]+'.)*[a-z0-9-]+(?:'.[a-z]+){1,2}'s*-)'s*
匹配:
- 所有域名
- 任意数量的子域
-
.co.uk
、.co.in
等多级域(仅限两级)
注意,它也会匹配很多无效的域名。但我想,如果你只是想从给定的文本中删除所有域名,这应该无关紧要。
<<p> Regex101演示/strong>