我正在為一個問題而絞盡腦汁,但我無法找到合適的解決方案。問題:寫一個正規表示式來匹配文字中所有出現的不同字元或單字。文本順序應該是這樣的:
pl 播放器
我試過了
(pl|播放|玩家)
但由於某種原因它只會選擇所有單字中的 pl 。那麼有人知道為什麼會這樣嗎?
連結到正規表示式101
任何幫助將不勝感激。
答案1
當您尋找替代品時,如果它們具有/以常見字元開頭,請從最長的單字開始到最短的單字。由於pl
、play
和player
全部以 開頭pl
,只有pl
(作為第一個替代項)匹配。play
並且player
不被考慮。
你的正規表示式應該是(player|play|pl)
:
在這種情況下,首先對這些單字進行測試/比較player
,然後與「play
如果player
未找到」進行測試/比較,最後與「pl
如果未找到其他兩個單字」進行測試/比較。
答案2
您需要指定貪婪匹配,因此.*
在正規表示式的末尾添加,如下所示:
(pl|play|player).*
使用貪婪匹配時必須小心,因為最終匹配的數量可能會超出您的預期。