大家好我想弄清楚如何在kotlin中使用正则表达式的群组捕获结果,而且我的生活在网上找不到任何东西。我基本上只是想简短地删除“k”
var line = "4353453555k fgafg 4535k"
line.replace("(\\d*)[k]".toRegex(), "replace with group capture")
我想要的结果:
4353453555 fgafg 4535
答案 0 :(得分:3)
要删除数字后面的k
,您可以使用
line = line.replace("""(\d+)k""".toRegex(), "$1")
此处,(\d+)k
匹配并捕获组1中的一个或多个数字,然后匹配k
,替换模式中的$1
将组1值插回到结果字符串中。
或者,您可以使用基于lookbehind的解决方案:
line = line.replace("""(?<=\d)k""".toRegex(), "")
(?<=\d)k
模式仅匹配k
字符,如果它前面有一个数字。 (?<=\d)
模式是一个积极的lookbehind,需要在当前位置的左侧立即存在其patten(数字)(不将匹配缓冲区中的文本匹配,因此替换为空字符串)。