【发布时间】:2021-11-09 18:34:47
【问题描述】:
给定来自this link 的推文数据集,其中有一个content 列,如下所示:
我希望增加一个新的专栏来确定这条推文是否提到了特朗普。正则表达式模式(^|[^A-Za-z0-9])Trump([^A-Za-z0-9]|$) 似乎可行,但我不太了解。我已经用下面的代码进行了测试:
Test1 给出匹配后的输出:
txt1 = "anti-Trump protesters"
re.search("(^|[^A-Za-z0-9])Trump([^A-Za-z0-9]|$)", txt1)
输出:
<_sre.SRE_Match object; span=(4, 11), match='-Trump '>
Test2 返回 None,因为它没有按预期匹配:
txt2 = 'I got Trumped'
re.search("(^|[^A-Za-z0-9])Trump([^A-Za-z0-9]|$)", txt2)
有人可以帮助解释一下这种模式。非常感谢。
【问题讨论】:
-
您可以查看 regex101 以获取解释:右上角的regex101.com/r/CfhDAe/1,以及一些regex graph 以了解发生了什么
-
这些链接真的很有帮助,谢谢分享。
-
这匹配任何包含 Trump 且前后有非字母数字字符的内容
标签: python-3.x regex pandas string re