2013-04-16 24 views
1

對不起,我不得不重新寫這個問題,我正在完成它,有人關閉它。 他們不善於解釋爲什麼我不得不轉發? 請告訴我什麼是混淆。Java替換匹配的正則表達式

主要觀點:我想用比賽 的一部分,以取代正則表達式匹配,如果我正則表達式,您好,我希望它與{喜} 被取代,如果正則表達式匹配的我想要替換{在}

這是真棒看這兩個字母的單詞會被替換 的回報將是

this <h1>is</h1> awesome look <h1>at</h1> this two letter words get replaced 

通知如何度以及其將匹配正則表達式\ b \ w^\ W \ b。將相匹配的替代

這是我正在研究的代碼...不要判斷它沒有完成,但我只是有點困惑,並想知道是否有更簡單的方法。我正在搜索字符串並找到匹配,然後我將把它交給一個數組列表並替換每一個。問題是我正在替換的事情之一是{我想用{{} 替換它現在一看,這將不斷取代括號,因爲我不斷添加它們...所以我的另一個想法是取代它們所有逐個char字符並添加到新的StringBuilder對象?

ArrayList<String> replacements= new ArrayList<String>(); 
String s="::"; 
s+=command; 
Pattern p= Pattern.compile("[!-~]"); 
Matcher match= p.matcher(this.execution); 
while(match.find()){ 
    replacements.add(match.group()); 
} 
StringBuilder string= new StringBuilder(); 
for(int i=0;i<this.execution.length();i++){ 
    String a=new String(execution.charAt(i)); 
    if(...){ 
     ... 
    } 
} 
s+="::"+this.execution; 

回答

5

嘗試

str = str.replaceAll("(\\b\\w\\w\\b)", "<h1>$1</h1>"); 
+0

沒有$ 1意味着當前的匹配?感謝您抽出時間 –

+0

$ 1表示當前比賽中的第一組。組是在括號內的表達式 –

+0

所以我必須爲每場比賽做$ 1,$ 2 ..等等。 –