You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用正则表达式成对替换双引号为对应上下弯引号?

正则实现方案

你可以通过更简洁的正则方式实现需求,核心思路是先校验双引号总数是否为偶数,再批量替换所有成对双引号即可。

具体Java代码实现:

private static String replaceByRegex(String s) {
    // 统计双引号总数,非偶数直接返回原串
    long quoteCount = s.chars().filter(c -> c == '"').count();
    if (quoteCount % 2 != 0) {
        return s;
    }
    // 匹配所有成对双引号,替换为目标格式
    return s.replaceAll("\"([^\"]*)\"", "„$1”");
}

如果想要一步完成校验+替换,也可以通过全局前瞻断言实现:

private static String replaceByRegexOneStep(String s) {
    // 前瞻断言确保双引号总数为偶数后,再匹配成对双引号替换
    return s.replaceAll("(?<=^[^\"]*(?:\"[^\"]*\"[^\"]*)*)\"([^\"]*)\"", "„$1”");
}

效果验证

输入Some "text"时,两种实现都会输出Some „text”;如果双引号总数为奇数,会直接返回原字符串,完全符合需求。

内容的提问来源于stack exchange,提问作者mmichal

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.01 03:39:02