正则表达式字符串不包含子字符串

Joe*_*ley 12 regex string substring

我正在尝试匹配不包含子字符串的字符串

我的字符串总是以"http://www.domain.com/"开头

我想从匹配中排除的子字符串是字符串后面的".a /"(域名中的文件夹名称)

我要排除的子字符串后面的字符串中会有字符

例如:

"http://www.domain.com/.a/test.jpg"不应该匹配

但是"http://www.domain.com/test.jpg"应该是

cod*_*ict 25

使用负前瞻断言:

^http://www\.domain\.com/(?!\.a/).*$
Run Code Online (Sandbox Code Playgroud)

Rubular Link

该部分(?!\.a/)匹配除了以外的任何东西.a/


Ing*_*ngo 7

我在这种情况下的建议不是构建过于复杂的正则表达式,这些正则表达式具有负面的先行断言或类似的东西.
保持简单和愚蠢!
做2个匹配,一个用于肯定,然后排除负面(或反过来).大多数情况下,正则表达式变得更容易,即使不是微不足道的.而且你的程序越来越清晰.
例如,要使用foo但不是foobar提取所有行,我使用:

grep foo | grep -v foobar
Run Code Online (Sandbox Code Playgroud)