在我的 java 应用程序中,我有以下字符序列:b"2
(任何单个字符,后跟双引号,后跟一位数字)
我需要用单引号字符替换双引号。 我正在尝试这个:
Pattern p = Pattern.compile(".\"d");
Matcher m = p.matcher(initialOutput);
String replacement = m.replaceAll(".'d");
这似乎没有做任何事情。
这样做的正确方法是什么?
最佳答案
首先,d
代表一个文字字符。您正在寻找 \d
,它代表一个数字。
另一个问题是您用字符串文字 ".'d"
替换变量字符。一种解决方案是 capture可变部分并在替换中引用它们:
String replacement = initialOutput.replaceAll("(.)\"(\\d)", "$1'$2");
另一种方法是使用 lookarounds检查周围的字符而不实际匹配它们进行替换:
String replacement = initialOutput.replaceAll("(?<=.)\"(?=\\d)", "'");
关于java - 如何使用java正则表达式正确替换字符串中的字符?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48218609/