我正在使用 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 个或更多字符.
[.?!]
- 一个?
,!
或.
添加回答
举报
0/150
提交
取消