2013-04-16 94 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 ..等等。 –