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