我正在尝试通过一个8页的PDF文件搜索括号内的所有单词,除了“(EAI),(EY)”和其他几个单词。我正在使用一个正则表达式,并且可以在括号内全部说出三个字母,但是我不知道如何排除我想排除的内容。
import re
lines = text.split()
search = "\(\D{3}\)"
regex = re.compile(search)
for line in lines:
three_letters= regex.findall(line)
for word in three_letters:
print(word)
我得到以下列表:
(FBS) (NFS) (IAD) (CD) (CD) (EAI) (EAI) (EAI) (VIG) (EAI) (EAI) (NTF) (DRP) (EAI) (IAD)
但是我需要排除其中的一些。
一段时间以来,我一直在努力奋斗,请帮忙!
答案 0 :(得分:3)
与此一起使用findall函数(匹配3个字母)
\((?!(?:list|of|stuff|you|don't|want)\))[A-Z]{3}\)
格式化
\(
(?!
(?:
list
| of
| stuff
| you
| don't
| want
)
\)
)
[A-Z]{3}
\)
指定一个范围以使其可变。
此示例匹配2到5个字母{2,5}
。
或者,上限为2,没有上限仅为{2,}
\((?!(?:list|of|stuff|you|don't|want)\))[A-Z]{2,5}\)