javascript - 正则表达式:匹配一个子字符串,但稍后排除另一个子字符串

标签 javascript regex

尝试编写匹配某些 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/

相关文章:

javascript - 用 HTML 标签替换 HTML 结束标签 +\n 分析

javascript - 如何通过 javascript 在 XMLHTTPRequest 中更新 url

javascript - 解析angular2中的xml以在 View 中呈现

java - 尝试从字符串中提取某些数字

java - 正则表达式来获得重量

python - 正则表达式匹配大写单词,以及周围的 +- 4 个单词

正则反编译器

javascript - 将图像加载到 Canvas 中 - 图像缩放

javascript - OpenLayers:单击更改图层源

javascript - 禁用 anchor 链接单击+在HTML页面中拖动/滑动带有内部链接的容器