如果我有一个字符串,比如说,
"Hello, world!"
和
的正则表达式"world".toRegex()
我打电话
"Hello, world!".replace("world".toRegex(), "universe")
我得到了结果字符串
"Hello, universe!"
这一切都按预期工作......但是,如果我想保留我取出的那个字符串的副本怎么办?我想在变量中保留“世界”的副本。
答案 0 :(得分:3)
您可以使用String#replace()
方法的回调并在其中分配变量:
var needle = ""
val result = "Hello, world!".replace("world".toRegex()) { needle = it.value; "universe" }
println("Replacement result: " + result)
println("Found match: " + needle)
结果:
Replacement result: Hello, universe!
Found match: world
您可以使用MutableList<String>
来保存匹配列表并添加找到的匹配项:
var needle = mutableListOf<String>()
val result = "Hello, world! This world is too small.".replace("world".toRegex()) { needle.add(it.value); "universe" }
结果:
Replacement result: Hello, universe! This universe is too small.
Found match: [world, world]
答案 1 :(得分:-2)
val str = "Hello, world!"
val regex = "world".toRegex()
val matchResult = regex.find(str)
val match = matchResult?.value.orEmpty()
val replaced = str.replace(regex,"universe")