gpt4 book ai didi

java - 将全部替换为具有正则表达式通配符的字符串

转载 作者:行者123 更新时间:2023-12-01 17:28:25 26 4
gpt4 key购买 nike

Possible Duplicate:
java String.replaceAll without regex

我有一个字符串,我需要替换它的某些部分。
不过,替换文本包含正则表达式通配符。示例:

String target = "Something * to do in ('AAA', 'BBB')";    
String replacement = "Hello";
String originalText = "ABCDEFHGIJKLMN" + target + "ABCDEFHGIJKLMN";
System.out.println(originalText.replaceAll(target, replacement));

我得到:
ABCDEFHGIJKLMNSomething * to do in ('AAA', 'BBB')ABCDEFHGIJKLMN

为什么没有发生替换?

最佳答案

因为*()都是正则表达式中的元字符。因此,所有这些都需要逃脱。看起来 Java 有一个方便的方法:

java.util.regex.Pattern.quote(target)

但是,更好的选择可能是不使用正则表达式使用 replaceAll 函数 but simply replace 。那么你不需要逃避任何事情。

关于java - 将全部替换为具有正则表达式通配符的字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13270039/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com