如果匹配和不匹配子字符串,如何组合正则表达式?
例如:
http://www.domain.com/user.php?query=blah
http://www.domain.com/member.php?query=blah
http://www.domain.com/user.php?query=blah&context=DkUdh8ShTkNNkwoIJkl
http://www.domain.com/member.php?query=blah&context=DkUdDh8ShTaDfkNNkwoIJkl
我想获取包含 "user.php"
和 "member.php"
的 url,但我不想获取包含 "的 url上下文”
要匹配包含“user.php”和“member.php”的网址,我可以使用:
(user\.php|user\.php)
如果不包含“上下文”:
^((?!context).)*$
如何组合 (user\.php|user\.php)
和 ^((?!context).)*$
?
我的结果应该是:
http://www.domain.com/user.php?query=blah
http://www.domain.com/member.php?query=blah
感谢您的帮助...
最佳答案
使用此模式
^(?=.*(?:user|member))(?!.*context).*$
做到:
^(?=.*\/(?:user|member)\b\.php)(?!.*context).*$
^ # begining of string
(?=.*\/(?:user|member)\.php) # look ahead for "/user.php" or "/memeber.php"
(?!.*context) # negative look ahead for "context"
.*$ # anything to the end
关于javascript - 如何使用 REGEX 匹配和不匹配子字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26686096/