我正在使用 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
提交
取消
