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