大家好,我想弄清楚如何在 kotlin 中使用从正则表达式中捕获的组的结果,而我一生都无法在网上找到任何东西。我基本上只是想简单地去掉“k”
var line = "4353453555k fgafg 4535k"
line.replace("(\\d*)[k]".toRegex(), "replace with group capture")
Run Code Online (Sandbox Code Playgroud)
我想要的结果:
4353453555 fgafg 4535
Run Code Online (Sandbox Code Playgroud)
要删除k后面的数字,您可以使用
line = line.replace("""(\d+)k""".toRegex(), "$1")
Run Code Online (Sandbox Code Playgroud)
在这里,(\d+)k将一个或多个数字匹配并捕获到第 1 组中,然后匹配k,并且$1替换模式中的 将第 1 组值插入到结果字符串中。
或者,您可以使用基于后视的解决方案:
line = line.replace("""(?<=\d)k""".toRegex(), "")
Run Code Online (Sandbox Code Playgroud)
请参阅在线 Kotlin 演示。
该(?<=\d)k模式k仅在字符前面紧跟数字时才匹配字符。该(?<=\d)模式是一个积极的后视,需要在当前位置的左侧立即出现其模式,一个数字(不将匹配的文本放入匹配缓冲区,因此替换为空字符串)。
| 归档时间: |
|
| 查看次数: |
916 次 |
| 最近记录: |