python - 正则表达式:删除句子中“/”后的字符
问题描述
我有一些使用 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)
但首先我需要忽略“/”之后的部分,否则没有匹配项。我该怎么做?
解决方案
如果以下正则表达式在没有修改 python 正则表达式引擎的情况下工作,我不舒尔。我在测试中使用了 .NET 的正则表达式实现。
要查找所有指定的单词,请使用正则表达式:
\b(my|I)\b
如果要忽略 a/
是前一个字符的单词的所有匹配项,可以添加否定的 look-behind (?<!/)
。
\b(?<!/)(my|I)\b
\b
是单词的开头或结尾。
推荐阅读
- python-3.x - 在 yaml 配置中使用 python 变量名
- android - Android 中的 Libvlc Chromecast .m3u8
- angular-reactive-forms - 角父母
- google-apps-script - 如何获取当前文档的活动 URL?Google Apps 脚本
- node.js - 邮递员 req.body() 中的错误不是函数
- arrays - 规范化 MongoDB 中的数组结构
- python - python脚本中的IPFS
- reactjs - 反应离子 ios-app 问题中的 Stripe 3d-secure 验证
- java - 我可以将 firebase 数据库用于桌面和移动应用程序吗
- etl - 为每个分区制作单独的 Glue 表的最佳方法?