python - 我如何使用正则表达式在 PDF 中搜索括号内的所有单词,除了一组特定的单词?

标签 python regex regex-negation findall

我正在尝试在一个 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)

我得到以下列表:

(胎牛血清) (NFS) (内陆) (CD) (CD) (EAI) (EAI) (EAI) (VIG) (EAI) (EAI) (NTF) (DRP) (EAI) (IAD)

但我需要排除其中的一些。

我一直在努力解决这个问题,请帮忙!!

最佳答案

使用 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}\)

关于python - 我如何使用正则表达式在 PDF 中搜索括号内的所有单词,除了一组特定的单词?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57118203/

相关文章:

javascript - 在 Javascript 中用 <TD> 替换 [TD]

javascript - 如何在 JavaScript 中用正则表达式匹配第 n 个字符后的所有字符?

c# - 正则表达式 - 避免字符

python - memcached 中对象的最佳序列化方法是什么?

python - 如何让导入的模块使用与主模块相同的对象?

python - 如何将字符串格式化为存储在变量中的固定长度?

regex - 如何忽略正则表达式捕获中的前导零?

python - 两个for循环的优化

Windows 高级文件匹配

python - 正则表达式搜索删除单词