2017-06-22 61 views
0

例如,對於這個字符串我想匹配所有Aa:「一個 LL的一個 pples中號一個磕好的C 一個珂」如何匹配第一個字母的所有實例?

這裏就是我所做的:/(.)[^.]*\1*/ig

我開始通過獲取該組中的第一個字符,它可以是任何字符:(.)然後我說[^.]*,因爲我不想匹配ISN」任何其他字符第一個。最後我加了\1*,因爲我想再次匹配第一個字符。我嘗試過的所有其他類似變體似乎都不起作用。

+0

'[^] *'一直沒有回參考 - 它只是說「不通配符「,它永遠不會匹配任何東西。這看起來像是更適合於簡單的字符串操作的東西,除非你有真正堅實的理由使用正則表達式。 –

+0

試試'\ b [^ \ WAa] *([Aa])[^ \ WAa] * \ b'這個正則表達式可以通過首先匹配'\ b [a-zA-Z]'然後用上面的正則表達式那封信是什麼。然後使用該正則表達式來處理所有匹配。 – sln

+0

我認爲最簡單的方法是先獲得第一個字母並匹配它。 –

回答

2

你正在試圖建立將捕獲的第一個字符那麼任何事情了相同的字符儘可能,使用負先行(tempered dot)的正則表達式:

(?i)(\w)(?:(?!\1).)* 

捕獲組1保存字符你需要。試一試live demo

如果正則表達式引擎支持\K比賽重新制定者令牌,那麼你可以把它附加到正則表達式以上only match desired part

(?i)(\w)(?:(?!\1).)*\K 
+0

哇!好的解決方案 –

相關問題