我试图在Kotlin中使用带有反向引用的正则表达式,以以下方式替换String的占位符:
源: "This is a %s with %02d whatever"
目标: "This is a <s/> with <02d/> whatever"
所以我正在寻找类似于以下内容但具有适当语法的东西:
private fun escapePlaceHolders(text: String): String {
return """%([^ ]+?)""".toRegex().replace(text, "<\1/>")
}
显然,这段代码甚至无法编译,更不用说工作了。问题在于我不知道如何在替换函数中使用后向引用,如果有可能的话。
([^ ]+?)
只匹配了一个非空格字符。你可以尝试使用([^ ]+)
。但我怀疑它会匹配太多。 - Wiktor Stribiżew*?
/??
不匹配任何字符,并且+?
只匹配一个字符。 - Wiktor Stribiżew