gpt4 book ai didi

java - 当不是字母字符时替换全部

转载 作者:太空宇宙 更新时间:2023-11-04 09:31:54 24 4
gpt4 key购买 nike

我需要将字符串中出现的所有单词替换为非字母字符(数字、空格等)或字符串开头或结尾的 $0。但是,当我使用 ReplaceAll 时,我的正则表达式模式似乎不起作用。

我尝试了在网上找到的几种解决方案,例如 Pattern.quote,但该模式似乎不起作用。然而,它在 https://regexr.com/ 上完美运行。

public static final String REPLACE_PATTERN = "(?<=^|[^A-Za-z])(%s)(?=[^A-Za-z]|$)";

String patternToReplace = String.format(REPLACE_PATTERN, "a");

inputString = inputString.replaceAll(Pattern.quote(patternToReplace), "$0");

例如,使用字符串和单词“a”:

a car4is a5car

我希望输出是:

$0 car4is $05car

最佳答案

只需将 inputString.replaceAll(Pattern.quote(patternToReplace), "$0"); 更改为 inputString.replaceAll(patternToReplace, "\\$0");

我已经用这段代码进行了测试:

public static final String REPLACE_PATTERN = "(?<=^|[^A-Za-z])(%s)(?=[^A-Za-z]|$)";
String patternToReplace = String.format(REPLACE_PATTERN, "a");
inputString = inputString.replaceAll(patternToReplace, "\\$0");
System.out.println(inputString);

输出:

$0 car4is $05car

希望这对你有帮助:)

关于java - 当不是字母字符时替换全部,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57018473/

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