java - 如何避免在java中替换文本中的特定单词

标签 java regex pattern-matching

我有一个这样的方法:

for(String abc:abcs){  
   xyz = abc.replaceAll(abc+"\\(", "_"+abc+"\\(");
}

如何避免替换java中具有特定前缀的少数替换

我尝试过这个:

String data = "Today, abc.xyz is object oriented language";
String regex = "(?<!abc.)xyz";     
Pattern pattern = Pattern.compile(regex);
Matcher matcher = pattern.matcher(data);
System.out.println(matcher.find());

最佳答案

这对你有用吗?

package test;

import java.util.regex.Matcher;
import java.util.regex.Pattern;

public class Test {
    public static void main(String[] args) {
        String prefix = "abc";
        String replaceWith = " text";
        String input = "This xyz is an example xyz to show how you can replace certains values of the xyz.\n"
                + "The xyz can conain any arbitrary xyz, for example abc.xyz.";
        Pattern pattern = Pattern.compile("[^" + prefix + "].xyz");
        Matcher m = pattern.matcher(input);
        while (m.find()) {
            input = input.replace(m.group().substring(1), replaceWith);
        }
        System.out.println(input);
    }
}

关于java - 如何避免在java中替换文本中的特定单词,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42409540/

相关文章:

java - informix DB 上的 ROW_NUMBER() 显示不支持 BIGINT

java - 有哪些方法可以优化在 Android 上运行的服务?

javascript - 正则表达式:在起始定界符和可选的结束定界符之间捕获

java - 为什么这个正则表达式 ".*"与 "abcd 1234 abcd"匹配会给出两个匹配项?

string - Oracle:获取部分字符串匹配的长度

javascript - 使用javascript匹配字符串中任意长度字符的正则表达式?

java - 从客户端 java 应用程序上传 blob

java - jpa查询中加入和路径导航的区别

javascript - 删除脚本中的 HTML 标签

rust - 为什么在 Rust 元组模式匹配中需要显式借用?