Kotlin 正则表达式

2024 年 8 月 29 日 | 阅读 3 分钟

正则表达式通常指的是用于搜索字符串或在正则表达式对象上替换的正则表达式。要使用它的功能,我们需要使用 Regex(pattern: String) 类。Kotlin 的 Regex 类在 kotlin.text.regex 包中。

Kotlin Regex 构造函数

Regex(pattern: String)它从给定的字符串模式创建一个正则表达式。
Regex(pattern: String, option: RegexOption)它从给定的字符串模式和给定的单个选项创建一个正则表达式。
Regex(pattern: String, options: Set<RegexOption>)它从给定的字符串模式和一组给定的选项创建一个正则表达式。

Regex 函数

函数描述
fun containsMatchIn(input: CharSequence): Boolean它表示正则表达式包含至少一个输入字符
fun find(
input: CharSequence,
startIndex: Int = 0
): MatchResult?
它返回正则表达式在输入字符序列中的第一个匹配项,从给定的 startIndex 开始。
fun findAll(
input: CharSequence,
startIndex: Int = 0
): Sequence<MatchResult>
它返回正则表达式在输入字符串中的所有匹配项,从给定的 startIndex 开始。
funmatchEntire(input: CharSequence): MatchResult?它用于从模式中匹配完整的输入字符。
infix fun matches(input: CharSequence): Boolean它表示所有输入字符序列是否与正则表达式匹配。
fun replace(input: CharSequence, replacement: String): String它用给定的替换字符串替换正则表达式的所有输入字符序列。
fun replaceFirst(
input: CharSequence,
replacement: String
): String
它用给定的替换字符串替换正则表达式在给定输入字符串中的第一个匹配项。
fun split(input: CharSequence, limit: Int = 0): List<String>它分割正则表达式的输入字符序列。
fun toPattern(): Pattern
fun toString(): String
它以字符串形式返回正则表达式。

Regex 类的示例,用于检查输入模式的包含

输出

true

Regex 函数的结果基于匹配的正则表达式模式和输入字符串。一些函数检查部分匹配,而一些函数检查完全匹配。

containsMatchIn() 的 Regex 示例

输出

true

matches(input: CharSequence): Boolean 的 Regex 示例

matches(input: CharSequence): Boolean 函数的正则表达式检查所有输入字符序列是否与正则表达式匹配。

输出

false
false
true

matchEntire(input: CharSequence): MatchResult? 的 Regex 示例

matchEntire() 函数用于从模式中匹配完整的输入字符。

输出

abcd
null
100
null

find(input: CharSequence, startIndex: Int = 0): MatchResult? 的 Regex 示例

find 函数用于从正则表达式对象中查找输入字符序列。

输出

[email protected]
123-456-7890

findAll(input: CharSequence, startIndex: Int = 0): Sequence<MatchResult> 的 Regex 示例

regex 的 findAll() 函数根据提供的模式返回匹配结果的序列。

输出

12 34 56 7 8

replace(input: CharSequence, replacement: String): String 的 Regex 示例

Regex replace() 函数将输入字符序列中所有匹配的模式替换为指定的替换字符串。

输出

this picture is awesome

replaceFirst(input: CharSequence, replacement: String): String 的 Regex 示例

Regex replaceFirst() 函数用指定的替换字符串替换输入字符序列中第一个匹配模式的出现。

输出

nature is awesome, beautiful is nature

split(input: CharSequence, limit: Int = 0): List<String> 的 Regex 示例

regex split() 函数根据提供的模式分割输入字符序列。此分割的值将以 List 的形式返回。

输出

[ab, cd, ef]
[nothing match to split]