尝试编写匹配某些 URL 的正则表达式。出于我们的目的,我们假设 URL 是:
http://website.com/Section/subsection/Cows
http://website.com/Section/Cows
http://website.com/Section/subsection/Chickens
我想匹配:
- 包含/Section/的网址
- 除非后面跟着/Chickens
我得到的最接近的是/\/Section\/([a-zA-Z0-9]+)\/(?!Chickens)/gi
这适用于第一个 URL,但第二个 URL 将不匹配。我知道这是因为它没有 [a-zA-z0-9]+
部分,但我不知道如何解决它。
最佳答案
你们已经很接近了。这是正则表达式:
\/Section\/(?!.*\/Chickens)
它只匹配部分部分,然后断言后面跟有“/Chickens”的任何内容都无法匹配。
如果您希望正则表达式捕获 URL 路径而不仅仅是测试匹配,则可以使用附加的 .*
(在否定前瞻之外)尾随正则表达式。
关于javascript - 正则表达式:匹配一个子字符串,但稍后排除另一个子字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20690253/