2016-03-07 141 views
-2

您好我想使用Java字符串replaceAll()方法在我的文本文件中將「x3」替換爲「乘以3」。但有一個字符串發生「xxx3」,我不想取代。我怎樣才能做到這一點Java字符串replaceAll方法

實施例:

 ACTUAL          DESIRED 
1)ENGAGE XX3 COLOGNE 165ML   ENGAGE XX3 COLOGNE 165ML 
2)FDW MEN REFRESHING PULSE 125GMSX3 FDW MEN REFRESHING PULSE 125GMS multuiplied by 3 
+2

。利用正則表達式 – Shriram

+0

的你可以嘗試[負回顧後(http://www.regular-expressions.info /lookaround.html#lookbehind)。 – shmosel

+0

向我們展示樣本輸入和輸出 – TheLostMind

回答

4

嘗試

StringName.replaceAll("(?<!x)x3", "multiplied by 3"); 

replaceAll方法使用一個正則表達式作爲第一個參數,該模式有兩個部分:

"x3":每次方法在您的字符串中找到「x3」,則有機會匹配圖案

"(?<!x)"是一個負面倒序。這意味着:「如果我當前的字符串部分前面有x,則該模式不匹配,否則它將」例如「。 :"(?<!example)x3"將匹配字符串中的每一個"x3",除了任何"examplex3"

希望它可以幫助你

+0

http://stackoverflow.com/questions/6219263/java-string-replace-not-working – shmosel

+0

感謝charly它的工作 – sujit

+0

看着你的例子,我不知道是什麼前綴應該被忽略。你想忽略XX3或XXX3,還是兩者? – Charly