0
我使用python解析多行文件并使用re.findall()
执行正则表达式。正则表达式匹配没有前面的字符串的字符串
我试图用字符串“bar”来匹配行,只要字符串“no foo”不在“bar”前面。换句话说 - 匹配任何“酒吧”,但不匹配“没有富酒吧”。如果“bar”出现在“no foo bar”之外,那么它应该匹配。
输入:
1. candy bar 1
2. no bar stool
3. no foo bar here
4. foo barred
5. still no foo bar.
6. foo bar!
7. foobar!
8. tricky no foo bar but has bar again
所需的输出:
1. candy bar 1
2. no bar stool
4. foo barred
6. foo bar!
7. foobar!
8. tricky no foo bar but has bar again
这与我一直在努力,但都没有成功表达:
(^|[^no foo ])bar
代码:
patterns = ["XXX", "(^|[^no foo ])bar"]
joinedpatterns = "|".join(patterns)
for line in lines:
for match in re.findall(joinedpatterns, line):
print 'found "%s"' % str(match)
这版画“富不富酒吧酒吧富巴” eventhough两次行是独一无二的。 – Abra001