Kotlin/Java 提取正则表达式内容

Stars-one 2021年03月12日 194次浏览 本篇字数为660字

本文为作者原创,转载请注明出处,谢谢配合
作者:Stars-one
链接:https://stars-one.site/2021/03/12/kotlin-regex


这是使用Kotlin的Regex类

val line = "xtest_hh_j_h"
val regex = Regex("test_(.*)_j")
val matchEntire = regex.matchEntire(line)
println(matchEntire?.groupValues?.get(0))//输出为test_hh_j
println(matchEntire?.groupValues?.get(1))//输出为 hh

下面这是使用Java的正则类:

// 按指定模式在字符串查找
val line = "xtest_hh_j_h"

val pattern = "test_(.*)_j"

// 创建 Pattern 对象
val r = Pattern.compile(pattern)

// 现在创建 matcher 对象
val m = r.matcher(line)
if (m.find()) {
	//m.group的长度 为 正则条件数+1
	//上述存在有(.*)的1个正则条件,所有m.group的长度为2,下标从0开始,如果打印m.group(3)就会报异常
	println("Found value: " + m.group(0)) //结果为test_hh_j
	println("Found value: " + m.group(1)) //结果为hh
	
} else {
	println("NO MATCH")
}