Java替换匹配的正则表达式

标签 java regex matcher replaceall

<分区>

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

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

替换

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

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

注意匹配正则表达式\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;

最佳答案

尝试

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

关于Java替换匹配的正则表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16028876/

相关文章:

java - MySQL 表中的 ArrayIndexOutOfBoundsException

python - re.sub 有异常(exception)或条件

java - 在另一个字符串中查找某个字符串并计算它出现的次数

java - hibernate/JPA : Get one (first) element of a OneToMany relationship

Java - for() 循环和数组

正则表达式匹配 #Comment 无法正常工作

java - 如何将 `any` 匹配器与对象参数一起使用

Java 模式包含数组中的所有字符串

java - 从 Python 运行 Java 程序

javascript - 删除前导和尾随 <br>