首页 > 解决方案 > 正则表达式:删除句子中“/”后的字符

问题描述

我有一些使用 NLP 库标记的文本:

text = "I/PRP guess/VBP my/PRP$ point/NN that/IN I/PRP be/VBD try/VBG to/TO communicate/VB ,/, be/VBZ how/WRB do/VBP these/DT pedo/NN ring/NNS get/VBP so/RB big/JJ before/IN they/PRP be/VBP expose/VBN ./."

我有话:

words = ["my", "I"]

我想找到所有出现的words in 文本`,对于那部分我有:

pattern = r'\W.*?({})\W.*?'.format('|'.join(words))
s = re.findall(pattern, text, flags=re.IGNORECASE)

但首先我需要忽略“/”之后的部分,否则没有匹配项。我该怎么做?

标签: pythonregex

解决方案


如果以下正则表达式在没有修改 python 正则表达式引擎的情况下工作,我不舒尔。我在测试中使用了 .NET 的正则表达式实现。

要查找所有指定的单词,请使用正则表达式: \b(my|I)\b

如果要忽略 a/是前一个字符的单词的所有匹配项,可以添加否定的 look-behind (?<!/)\b(?<!/)(my|I)\b

\b是单词的开头或结尾。


推荐阅读