标签: php regex preg-match
下面的preg_match与通配符匹配'empty'(0个字符)。我想禁用它:
preg_match('/site.com\/subsection\/.*?/', $page_url);
所以上面的内容应与site.com/subsection/subpage相匹配,但不应与根目录site.com/subsection /
如何调整上面的正则表达式?提前谢谢!
答案 0 :(得分:4)
模式末尾的.*?匹配空字符串。您需要使用.+:
.*?
.+
'/site\.com\/subsection\/.+/' ^
现在,site.com/subsection/后需要至少1个字符。
site.com/subsection/
请注意,必须对点进行转义以匹配文字点。
另外,如果模式本身有很多斜杠,那么使用/以外的正则表达式分隔符(如下OcuS中建议comments)可能是个好主意。我通常使用tildes:
/
'~site\.com/subsection/.+~'