我们的项目中有正则表达式匹配任何包含字符串的url “/ PDF /”:
(.+)/pdf/.+
需要对其进行修改,使其与包含“help”的网址不匹配
示例:
不应匹配:“/ dealer / help / us / en / pdf / simple.pdf” 应匹配:“/ dealer /us/en/pdf/simple.pdf”
答案 0 :(得分:2)
答案 1 :(得分:0)
(?:^|\s)((?:[^h ]|h(?!elp))+\/pdf\/\S*)(?:$|\s)
首先匹配空格或行的开头
(?:^|\s)
然后我们匹配任何非或
h
或任何h
背后没有elp
的内容,一次或多次+
,直到我们找到/pdf/
,然后匹配非空格字符\S
任意次*
。
((?:[^h ]|h(?!elp))+\/pdf\/\S*)
如果我们想在help
之后检测到/pdf/
,我们可以从头开始重复匹配。
((?:[^h ]|h(?!elp))+\/pdf\/(?:[^h ]|h(?!elp))+)
最后,我们匹配或结束行/字符串(
$
)
(?:$|\s)
完整匹配将包括前导/尾随空格,并且应该被剥离。如果使用捕获组1,则无需剥离末端。