带通配符的正则表达式负前瞻

regex negative lookahead with wildcard

我不确定标题是否有意义,但我不确定如何措辞。 我有看起来像

的字符串(文件名)
/aa/john/doe/xx/yy/xxTRUEyy.jar
/bb/ee/john/doe/xx/yy/aaTRUE.jar
/cc/john/doe/xx/yy/aaFALSE.jar
/dd/john/deere/xx/yy/aaTRUE.jar

我需要一个正则表达式,它不匹配其中包含 /john/doe/ 的字符串,并且有一个名称中包含 TRUE 的 jar 文件。 (在上面的例子中,应该只匹配字符串 3 和 4)。

您可以使用 (?!) 组来执行负前瞻:

^(?!.*\/john\/doe\/).*TRUE[^\/]*\.jar$

应该足够了。 regex101 demo.