提供伪正则表达式的示例:根据PHP regexp语法匹配除example.com和example2.com之外的每个url。
这是我到目前为止所做的,但它不起作用:
$patternToMatch = "@https?://[^(example.com|example2.com)]\"*@i";
答案 0 :(得分:2)
不要将正则表达式用于不需要的东西。
$parts = parse_url($url);
if ($parts && $parts['host'] != 'example.com' && $parts['host'] != 'example2.com') {
// the URL seems OK
}
答案 1 :(得分:1)
这里的问题是,在类定义([]
)中,(
和|
等特殊字符会失去意义。
更好的解决方案是在example.com或example2.com上匹配,然后仅进行否定测试。
答案 2 :(得分:1)
答案 3 :(得分:0)
你几乎得到了答案。 这将进行您想要的匹配。
$patternToMatch = "@https?://(example.com|example2.com)@i";