2012-07-06 64 views
0
mediaSourceSpecificJunkCharacters=mediaSourceSpecificJunkCharacters+","; 
Pattern p = Pattern.compile("\\[(.*?)\\],",Pattern.CASE_INSENSITIVE | Pattern.DOTALL); 
Matcher matcher = p.matcher(mediaSourceSpecificJunkCharacters); 
while(matcher.find()) { 
    String stringToMatch=matcher.group(1); 
    System.out.println("string to match "+stringToMatch); 
    originalText=originalText.replaceAll(stringToMatch.trim(),""); 
} 

這裏originalText="this is data from youtube youtube1 youtube2 youtube3 youtube4";mediaSourceSpecificJunkCharacters=[youtube2],[youtube3],[youtube4]Java的正則表達式替換忽略了第一場比賽

的第一場比賽是youtube3而不是youtube2 ....所以youtube2從未被替換......爲什麼會這樣呢?

回答

1

您甚至沒有youtube1在您的mediaSourceSpecificJunkCharacters。改變,要

String mediaSourceSpecificJunkCharacters = "[youtube1],[youtube2],[youtube3],[youtube4]"; 

而且,如果你想更換youtube4太多改變你的模式

Pattern p = Pattern.compile("\\[(.*?)\\]", Pattern.CASE_INSENSITIVE | Pattern.DOTALL); 

,該,末防止這在你的代碼。

+0

對不起..我改變了它..仍然d相同 – mona 2012-07-06 06:40:49

+0

它適用於我,請檢查此:http://ideone.com/de1XL – Keppil 2012-07-06 06:52:51

+0

嗨..謝謝..它的作品..只是區分大小寫部分不。如果你提供YOUTUBE ..作爲輸入.. youtube不會被取代.. ?? – mona 2012-07-06 09:12:38

相關問題