如何用Kotlin正则表达式提取特定字符前后的目标字符串
Kotlin正则提取特定区间字符串的实现
正则表达式写法
要提取. 之后、:之前的内容,对应的正则表达式为:
\\.\\s+(.*?):
各部分含义:
\\.:匹配点号(正则中点号为特殊字符,需转义)\\s+:匹配一个或多个空格,对应示例里的.(.*?):非贪婪匹配任意字符,捕获目标内容::匹配冒号作为结束边界
Kotlin代码实现
通过Regex类配合find方法实现,匹配失败时返回null,也可改为返回空字符串:
fun extractTargetValue(input: String): String? { val regex = Regex("""\.\s+(.*?):""") return regex.find(input)?.groups?.get(1)?.value } // 测试示例 fun main() { val validString = "Item1. myResultValue: someother string" println(extractTargetValue(validString)) // 输出 myResultValue val invalidString = "No target here" println(extractTargetValue(invalidString)) // 输出 null }
如果需要返回空字符串而非null,可修改返回逻辑:
return regex.find(input)?.groups?.get(1)?.value ?: ""
内容的提问来源于stack exchange,提问作者GK_
相关产品推荐
相关产品推荐

