1

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

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

这太棒了看看这两个字母的单词被替换返回将是

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

注意 is 和 at which 将如何匹配正则表达式 \b\w\w\b 将匹配替换

这是我正在处理的代码......不要判断它还没有完成,但我只是有点困惑,想知道是否有更简单的方法。我正在搜索字符串并找到匹配项,然后我将把它放到一个数组列表中并替换每个。问题是我要替换的一件事是 { 并且我想用 {{} 替换它现在看起来这将不断替换括号,因为我不断添加它们......所以我的另一个想法是全部替换它们一个一个一个字符一个字符地添加到一个新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;
4

1 回答 1

5

尝试

str = str.replaceAll("(\\b\\w\\w\\b)", "<h1>$1</h1>");
于 2013-04-16T04:42:01.130 回答