我正在使用 python 和正則表達(dá)式來嘗試獲取包含一系列 pandas df 中每個單詞的特定單詞的推文列表中的所有句子。我的 dfstocks_df包含某些股票名稱,例如 Symbol0 $GSX1 $NVDA2 $MBRX5 $BBBY6 $DIS我想要包含這些字符串的推文中的所有句子。我嘗試的解決方案遵循我遇到的另一個正則表達(dá)式問題:Key error when using regex quantifier python然而,我的解決方案主要是在句子的開頭抓取句子的符號,如果在句子的中間則不抓取它。它似乎也只匹配符號而沒有得到句子的其余部分。我的代碼是這樣的:pattern2 = r'(?:{}) (?:[^.]*[^.]*\.)'.format("|".join(map(re.escape, stocks_df['Symbol'])))有誰明白為什么沒有匹配完整的句子?
1 回答

PIPIONE
TA貢獻(xiàn)1829條經(jīng)驗 獲得超9個贊
如果你不必處理縮寫和其他混亂的格式,你可以使用匹配這些字符串
r'[^.?!]*(?:{})\b[^.?!]*[.?!]'.format("|".join(map(re.escape, stocks_df['Symbol'])))
該模式看起來[^.?!]*(?:\$GSX|\$NVDA|...)\b[^.?!]*[.?!]
會匹配
[^.?!]*
!
- 除了,?
和之外的0 個或更多字符.
(?:\$GSX|\$NVDA)
- 符號欄中的一個詞\b
- 需要整個單詞,\b
是單詞邊界[^.?!]*
!
- 除了,?
和之外的0 個或更多字符.
[.?!]
- 一個?
,!
或.
添加回答
舉報
0/150
提交
取消