regex - 替换第 1 个正则表达式匹配组而不是第 0 个

标签 regex kotlin

我就期待这个

val string = "hello   , world"
val regex = Regex("""(\s+)[,]""")

println(string.replace(regex, ""))

结果是:

hello, world

相反,它打印:

hello world

我发现replace函数关心整个匹配。有没有办法只替换第 1 组而不是第 0 组?

最佳答案

在替换中添加逗号:

val string = "hello   , world"
val regex = Regex("""(\s+)[,]""")

println(string.replace(regex, ","))

或者,如果 kotlin 支持前瞻:

val string = "hello   , world"
val regex = Regex("""\s+(?=,)""")

println(string.replace(regex, ""))

关于regex - 替换第 1 个正则表达式匹配组而不是第 0 个,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48486429/

相关文章:

php - 允许数字和字符之间连字符但删除字符之间连字符的正则表达式

java - 将Drawable类的对象存储在数据库中

kotlin - 如何在Intellij中配置Kotlin SDK外部文档?

kotlin - Kotlin 中的前置条件函数 - 良好实践

android - Kotlin 编译 "ERROR: The Android Gradle plugin supports only Kotlin Gradle plugin version 1.3.0 and higher."但 build.gradle 中没有 kotlin_version?

java - 为什么这个正则表达式 ".*"与 "abcd 1234 abcd"匹配会给出两个匹配项?

regex - perl regex 查找任何 5 的倍数

regex - Perl 正则表达式问题

java - 检测字符串是否包含特定字符的最快方法

kotlin - 如果需要 bool 和可空检查,如何简化此kotlin代码?