我正在使用Matcher
在String
中查找包含文本的特定模式。
正則表達式檢查各種模式,例如爲簡單起見:
\\bword1\\b|(\\b(?:word2(?:(\\s+)word3)?)?)
等如何使用匹配器來正確替換字符串內模式的所有出現
無論如何,我可以找到字符串中的模式。
到目前爲止確定。
我想要的是能夠使用Matcher.replaceAll
來替換髮現的每個模式,與相同的模式,但有一些補充。
E.g.
如果匹配器在某處發現word1
,我想用{v}word1{v}
替換它。
這是如何做到最好的?我試圖添加匹配器在列表中找到的組,然後遍歷輸入字符串來替換所有,但顯然這沒有奏效。
UPDATE:
我可以匹配我所需要的條件和@Luis正則表達式並替換,但我需要更換所有在我的字符串。
通過在字符串中循環並執行正則表達式"pattern", "{v}$0{v}")
我打破了以前發生的事件。我需要以某種方式包括在的replaceAll負回顧後,以理解當一個術語已經被替換
UPDATE:
使用正則表達式@Luis和負回顧後,它的工作
這不起作用。它在結果中打印出「{v} 1 {v}」。 – Cratylus
已修復並經過實際測試。 –
我會給你一個+1,但是這並不能解決我的問題。當我循環爲每個找到的術語執行replaceAll時,我會中斷以前的修改,因爲我可以匹配'word1 word2',稍後在字符串'word2'中第二個replaceAll打破了早先發現的'word1 word2' – Cratylus