我正在使用python和正则表达式尝试获取tweet列表中的所有句子,这些tweet列表中包含一系列单词中的每个单词的特定单词
我的dfstocks_df
包含某些股票名称,例如
Symbol
0 $GSX
1 $NVDA
2 $MBRX
5 $BBBY
6 $DIS
我想要推文中包含这些字符串的所有句子。我试图解决的问题是我遇到的另一个正则表达式问题:Key error when using regex quantifier python
但是,我的解决办法大多是在句子的开头抓取这个符号,如果在句子的中间没有抓住它。它似乎只匹配符号,而不匹配句子的其余部分。我的代码如下:pattern2 = r'(?:{}) (?:[^.]*[^.]*\.)'.format("|".join(map(re.escape, stocks_df['Symbol'])))
有人知道为什么完整的句子不匹配吗
如果不必处理缩写和其他混乱的格式,可以使用
模式将看起来像
[^.?!]*(?:\$GSX|\$NVDA|...)\b[^.?!]*[.?!]
,并且将匹配[^.?!]*
-0个或多个字符,而不是!
、?
和.
(?:\$GSX|\$NVDA)
-符号列中的一个单词\b
-需要整个单词,\b
是单词边界[^.?!]*
-0个或多个字符,而不是!
、?
和.
[.?!]
-a?
、!
或.
相关问题 更多 >
编程相关推荐