Php 使用Regex删除其他域
所以我有一个preg_replace,它用“[link removed]”替换字符串中的所有链接: 但我需要以一种方式进行过滤,如果域是“example.com”,则不会替换任何内容,如: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
"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+)?)?\/?)/