📜  kotlin 正则表达式 - Kotlin (1)

📅  最后修改于: 2023-12-03 15:17:10.064000             🧑  作者: Mango

Kotlin 正则表达式

Kotlin 正则表达式是在 Kotlin 中进行字符串匹配和操作的强大工具。它可以轻松地匹配字符串中的模式、捕获和替换字符串,使得字符串处理变得更为简单和快捷。

语法

Kotlin 正则表达式的语法基于 Java 的正则表达式语法。它使用反斜杠作为转义字符,以及各种字符类和元字符来匹配和操作字符串。以下是一些常见的字符类和元字符:

| 字符 | 描述 | |------|-------| | . | 匹配除换行符外的任意字符 | | \d | 匹配任意数字 | | \D | 匹配任意非数字字符 | | \w | 匹配任意字母、数字或下划线 | | \W | 匹配任意非字母、数字或下划线字符 | | \s | 匹配任意空白字符 | | \S | 匹配任意非空白字符 | | ^ | 匹配字符串的开头 | | $ | 匹配字符串的结尾 | | * | 匹配前面的字符零次或多次 | | + | 匹配前面的字符一次或多次 | | ? | 匹配前面的字符零次或一次 | | {n} | 匹配前面的字符恰好 n 次 | | {n,} | 匹配前面的字符至少 n 次 | | {n,m}| 匹配前面的字符至少 n 次、至多 m 次 | | (...)| 捕获匹配的子字符串 |

使用方法
匹配模式

要在 Kotlin 中使用正则表达式进行匹配,可以使用 Regex 类和它的 matchEntirefind 方法。例如,要匹配字符串是否是一个数字,可以使用以下代码:

val regex = Regex("\\d+")
val str = "123"
if (regex.matchEntire(str) != null) {
    println("是数字")
} else {
    println("不是数字")
}
捕获子字符串

要捕获匹配的子字符串,可以使用 Regex 类的 find 方法。例如,要从字符串中提取邮件地址,可以使用以下代码:

val regex = Regex("[\\w.-]+@[\\w.-]+\\.[\\w.-]+")
val str = "My email is john.doe@example.com."
val matchResult = regex.find(str)
if (matchResult != null) {
    val email = matchResult.value
    println("Found email: $email")
} else {
    println("Email not found.")
}
替换子字符串

要替换字符串中的匹配子字符串,可以使用 Regex 类和 replace 方法。例如,要将字符串中的所有数字替换为字符 x,可以使用以下代码:

val regex = Regex("\\d+")
val str = "1 2 3 4 5"
val result = regex.replace(str, "x")
println(result) // 输出:x x x x x
总结

Kotlin 正则表达式是一种非常强大的工具,常用于在字符串中进行匹配、捕获和替换操作。掌握 Kotlin 正则表达式的语法和使用方法,将使得字符串处理更为简单和高效。