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

如何在Kotlin中用反斜杠转义字符串中的所有正则元字符

Kotlin正则特殊字符自动转义方法

Kotlin 可以直接调用 Java 标准库中的 Pattern.quote() 方法,实现对所有正则特殊字符的自动转义。这个方法会把输入字符串包裹在 \Q 和 \E 之间(正则里的字面量引用标记),让正则引擎将整个字符串当作普通文本处理,完全忽略其中的元字符特性。

举两个实际使用的例子:

  • 输入字符串 "This is good.",调用 Pattern.quote("This is good.") 后,得到的结果是 "\QThis is good.\E",用这个作为正则模式去匹配时,. 会被当作普通的句点处理,不会触发正则的通配符特性。
  • 输入字符串 "?a [+",调用 Pattern.quote("? a [+") 得到 "\Q? a [+\E",所有特殊字符都会被正确转义,无需手动添加反斜杠。

如果你需要的是手动添加反斜杠的那种转义结果(比如直接输出带\的字符串),可以自己实现一个简单的扩展函数,遍历字符串中的每个字符,判断是否是正则元字符,若是则在前面添加反斜杠。比如:

fun String.escapeRegex(): String {
    val specialChars = "\\|.?+*()[]{}^$"
    return buildString {
        this@escapeRegex.forEach { char ->
            if (char in specialChars) {
                append('\\')
            }
            append(char)
        }
    }
}

使用这个扩展函数的话:

  • "This is good.".escapeRegex() 会返回 "This is good\."
  • "?a [+".escapeRegex() 会返回 "\? a \[\+"

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.07 08:31:16