我正在使用匹配所有字母数字字符的[0-9_A-Za-z]
:
'http://<slug:[0-9_A-Za-z]+>.domain.com/' => 'user/view'
我需要一个正则表达式来匹配它,但除了单词www
。
答案 0 :(得分:2)
您可以添加否定前瞻来限制单词字符类:
'http://<slug:(?!\w*www)\w+>.domain.com/' => 'user/view'
请注意[0-9_A-Za-z]
匹配与\w
相同的字符,因此我们可能会略微缩短模式。
要解决此问题,(?!\w*www)
否定前瞻将使所有匹配失败,其中www
出现在任何0 +字词之后(\w*
)。
答案 1 :(得分:0)
只需添加第二张支票,例如:
if (preg_match($pattern, $string) && 'www' !== $string) {