无法确定路径格式的正则表达式,该格式可能是stringA / stringB / StringX或stringA / stringX,但不仅仅是stringA / stringB

时间:2015-09-18 21:06:21

标签: javascript regex

这个正则表达式是用JavaScript编写的。更具体地说,stringA = content,stringB = dam& stringx可以是任何字符串。 我试过这个正则表达式&其他人很少:

^\/(content(?!\/(dam)))\/(.*)

但这会识别

/content/asfcew
/content/reddam
/content/usa/texas

并且无法识别

/content/dam

这很好,但是它也不能识别

/content/dam/asdfafa
/content/damred

这不好。

非常感谢任何建议,谢谢。

2 个答案:

答案 0 :(得分:1)

您只需要向前瞻添加字符串结尾$

^\/(content(?!\/(dam$)))\/(.*)
                    ^

请参阅demo

现在,(?!\/(dam$))只会在dam出现在字符串结尾之前失败。

请注意,此处的捕获组太多,您可以将其删除:

^\/content(?!\/dam$)\/(.*)

请参阅another demo

答案 1 :(得分:1)

正如上面的海报所说,你需要一个字符串锚$的结束到前瞻组。

要启用它捕获/ content / dam,其余使用此模式。

> ^\/(content(?=|\/(dam$)))\/(.*)

在此处查看演示https://regex101.com/r/kO2cZ1/5