Java替换匹配的正则表达式

时间:2013-04-16 04:37:14

标签: java regex matcher replaceall

对不起,我不得不重新写这个问题,我正在完成它,有人关闭它。 他们不善解释为什么我不得不重新发布? 请告诉我什么令人困惑。

要点:我想用匹配的一部分替换正则表达式匹配 所以,如果我正则表达,我希望它被{hi}取代 如果正则表达式匹配,我想用{at}替换

这真是太棒了看这两个字母的单词被取代了 回报将是

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

注意是什么和匹配正则表达式\ b \ w \ w \ b将匹配替换

这是我正在处理的代码...不要判断它没有完成但我只是有点困惑,并想知道是否有更简单的方法。我正在搜索字符串并找到匹配项,然后我将把它转到一个arraylist并替换每一个。问题是我要替换的问题之一是{并且我想用{{}替换它 现在看看这将不断替换括号,因为我不断添加它们...所以我的另一个想法是将所有逐个char替换为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;

1 个答案:

答案 0 :(得分:5)

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