javascript - 如何使用 REGEX 匹配和不匹配子字符串

标签 javascript php regex match

如果匹配和不匹配子字符串,如何组合正则表达式?

例如:

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).*$

Demo


^                           # 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/

相关文章:

数组中的 PHP 平均时间

python - 用Python重新挖掘信息

javascript - 如何使用 Javascript 将一个 HTML 标签放入另一个 HTML 标签

javascript - 如何在数据库中存储 googol(以及其他非常大的数字)?

javascript - channel 顾问/Ebay 图像质量问题

php - 为什么mysql不使用for循环插入10行?

javascript - 如何获得 livefyre 上的评论数?

regex - 单行代码折叠

java - 从Java中的字符串中删除所有非-"word characters",留下重音字符?

javascript - node.js - KOA 服务器 - 转发增强的 POST 请求