我试图在PHP中编写一个正则表达式,它匹配任何包含'search / site / *'的字符串,但前提是它不包含字符串'ss_language'
以下是我到目前为止:http://regexr.com?3416i 这成功匹配任何'search / site / *',包括'search / site',所以现在我需要排除任何包含'ss_language'的字符串
考虑到这一点,似乎我可以嵌套另一个preg_match来寻找ss_language,但这是与单个正则表达式相比最好的方法吗?一个正则表达式甚至可以实现这一点吗?以下是一些示例以及它们应该返回的内容:
提前感谢您的帮助。我对这些很新。这是一次失败的尝试:http://regexr.com?3416f
答案 0 :(得分:2)
您可以使用否定前瞻来断言该字符串不包含ss_language
^search/site/?(?!.*ss_language.*).*$
如果你只是想要一个真实/错误的答案来判断它是否匹配那么你真的不需要.*$
(它只会与search/site
匹配可选的/
鉴于字符串中没有ss_language
(短版本):
^search/site/?(?!.*ss_language)
答案 1 :(得分:0)
答案 2 :(得分:0)