首页 > 解决方案 > 使用正则表达式成对替换

问题描述

标签: javaregexstringreplace

解决方案


要将直双引号转换为弯双引号,您可以使用正则表达式,该正则表达式将匹配一对直引号,同时在其间捕获除直双引号之外的任何字符,并替换为对卷双引号内捕获的值的反向引用分数:

.replaceAll("\"([^\"]*)\"", "„$1”")

请参阅正则表达式演示细节

  • "- 一个"字符
  • ([^"]*)- 捕获组 1($1在替换模式中指的是该组值):除(是否定字符类)之外的任何零个或多个 ( *) 字符"[^"]
  • "- 一个"字符。

请参阅Java 演示

String s = "Some \"text\"";
System.out.println(s.replaceAll("\"([^\"]*)\"", "„$1”")); 
// => Some „text”

推荐阅读