Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/19.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 使用Regex删除其他域_Php_Regex_Preg Replace - Fatal编程技术网

Php 使用Regex删除其他域

Php 使用Regex删除其他域,php,regex,preg-replace,Php,Regex,Preg Replace,所以我有一个preg_replace,它用“[link removed]”替换字符串中的所有链接: 但我需要以一种方式进行过滤,如果域是“example.com”,则不会替换任何内容,如: "http://notmydomain.com" -> "[link removed]" "example.com" -> "example.com" 使用: 说明: (?!#断言无法从当前位置匹配此项: [^:\/\s]*#除冒号、斜杠或空格外的任意字符数 \b#后跟单词anchor的开头 e

所以我有一个preg_replace,它用“[link removed]”替换字符串中的所有链接:

但我需要以一种方式进行过滤,如果域是“example.com”,则不会替换任何内容,如:

"http://notmydomain.com" -> "[link removed]"
"example.com" -> "example.com"
使用:

说明:

(?!#断言无法从当前位置匹配此项:
[^:\/\s]*#除冒号、斜杠或空格外的任意字符数
\b#后跟单词anchor的开头
example\.com,后跟example.com。
)#展望结束。
另外,我在
\w+
部分之前添加了另一个,以确保在输入
example.com
时不匹配
example.com


测试它。

如果url是
http://example.abc.com
http://notmydomain.example.com
?然后是什么输出?@A-2-A哦,你说得对,那么我们只使用“example.com”你可以调用一个函数进行替换(我认为这是
/e
或其他),让函数决定是否替换?正如你所看到的,它也匹配像foo.phpYes这样的文件,你的正则表达式也是如此。
"http://notmydomain.com" -> "[link removed]"
"example.com" -> "example.com"
/((https?:\/\/)?(?![^:\/\s]*\bexample\.com)(\b\w+\.)+[a-z|A-Z]{2,}(:\d+)?((\/\w+)+(\.\w+)?)?\/?)/