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)
该部分(?!\.a/)匹配除了以外的任何东西.a/
我在这种情况下的建议不是构建过于复杂的正则表达式,这些正则表达式具有负面的先行断言或类似的东西.
保持简单和愚蠢!
做2个匹配,一个用于肯定,然后排除负面(或反过来).大多数情况下,正则表达式变得更容易,即使不是微不足道的.而且你的程序越来越清晰.
例如,要使用foo但不是foobar提取所有行,我使用:
grep foo | grep -v foobar
Run Code Online (Sandbox Code Playgroud)