繁体   English   中英

PHP正则表达式可匹配Example.com之外的任何URL

[英]PHP Regular Expression To Match Any URL Except Those From Example.com

提供伪正则表达式的示例:根据PHP regexp语法,匹配来自example.com和example2.com的所有URL。

这是我到目前为止的内容,但是不起作用:

$patternToMatch = "@https?://[^(example.com|example2.com)]\"*@i";

不要对不需要的东西使用正则表达式。

$parts = parse_url($url);
if ($parts && $parts['host'] != 'example.com' && $parts['host'] != 'example2.com') {
    // the URL seems OK
}

这里的问题是在类定义( [] )中,特殊字符(( |失去了意义。

更好的解决方案是在example.com或example2.com上进行匹配,然后仅对阴性测试进行。

不,方括号之间的所有内容都只能匹配一个字符。 例如正则表达式:

[^example]

将匹配example以外的任何单个字符。

尝试负前瞻

@https?://(www\.)?(?!example2?.com)@i

您几乎得到了答案。 这将完成您想要的匹配。

$patternToMatch = "@https?://(example.com|example2.com)@i";

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM