为了账号安全,请及时绑定邮箱和手机立即绑定

使用正则表达式为列表python中的每个单词捕获包含单词的句子

使用正则表达式为列表python中的每个单词捕获包含单词的句子

哈士奇WWW 2022-12-20 15:24:21
我正在使用 python 和正则表达式来尝试获取包含一系列 pandas df 中每个单词的特定单词的推文列表中的所有句子。我的 dfstocks_df包含某些股票名称,例如  Symbol0   $GSX1  $NVDA2  $MBRX5  $BBBY6   $DIS我想要包含这些字符串的推文中的所有句子。我尝试的解决方案遵循我遇到的另一个正则表达式问题:Key error when using regex quantifier python然而,我的解决方案主要是在句子的开头抓取句子的符号,如果在句子的中间则不抓取它。它似乎也只匹配符号而没有得到句子的其余部分。我的代码是这样的:pattern2 = r'(?:{}) (?:[^.]*[^.]*\.)'.format("|".join(map(re.escape, stocks_df['Symbol'])))有谁明白为什么没有匹配完整的句子?
查看完整描述

1 回答

?
PIPIONE

TA贡献1829条经验 获得超9个赞

如果你不必处理缩写和其他混乱的格式,你可以使用匹配这些字符串

r'[^.?!]*(?:{})\b[^.?!]*[.?!]'.format("|".join(map(re.escape, stocks_df['Symbol'])))

该模式看起来[^.?!]*(?:\$GSX|\$NVDA|...)\b[^.?!]*[.?!]会匹配

  • [^.?!]*!- 除了,?和之外的0 个或更多字符.

  • (?:\$GSX|\$NVDA)- 符号栏中的一个词

  • \b- 需要整个单词,\b是单词边界

  • [^.?!]*!- 除了,?和之外的0 个或更多字符.

  • [.?!]- 一个?!.


查看完整回答
反对 回复 2022-12-20
  • 1 回答
  • 0 关注
  • 113 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信