- Kotlin环境设置(命令行)
- Kotlin Hello World程序(命令行)
- Kotlin程序概念解释
- Kotlin开发环境设置(IDE)
- Kotlin第一个程序(IDE)
- Kotlin变量
- Kotlin数据类型
- Kotlin类型转换
- Kotlin运算符
- Kotlin表达式、语句和块
- Kotlin标准输入/输出
- Kotlin注释
- 控制流程
- 函数
- 数组
- 字符串
- 异常处理
- 空安全
- 集合
- 注解
- 反射
- Kotlin OOP
- 范围
- Java互操作性
- 正则表达式
Kotlin正则表达式
正则(Regex)通常是指正则表达式,用于搜索字符串或替换正则表达式对象。 要使用它,需要使用Regex(pattern:String)
类。 Kotlin Regex
类可以在kotlin.text.regex
包中找到。
Kotlin Regex构造函数
构造函数 | 描述 |
---|---|
Regex(pattern: String) |
它从给定的字符串模式创建正则表达式。 |
Regex(pattern: String, option: RegexOption) |
它从给定的字符串模式创建一个正则表达式并给出单个选项。 |
Regex(pattern: String, options: Set<RegexOption>) |
它根据给定的字符串模式和给定选项集创建正则表达式。 |
正则表达式函数
方法 | 描述 |
---|---|
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 类检查包含输入模式的示例
fun main(args: Array<String>){ val regex = Regex(pattern = "ko") val matched = regex.containsMatchIn(input = "kotlin") println("是否匹配:"+matched) }
执行上面示例代码,得到以下结果 -
是否匹配:true
正则表达式函数的结果基于匹配正则表达式模式和输入字符串。某些函数检查部分匹配,而某些检查完全匹配。
containsMatchIn()正则表达式的示例
fun main(args: Array<String>){ val regex = """a([bc]+)d?""".toRegex() val matched = regex.containsMatchIn(input = "xabcdy") println("是否匹配:"+matched) }
执行上面示例代码,得到以下结果 -
是否匹配:true
matches(input: CharSequence): Boolean 正则表达式的示例
matches(input: CharSequence)
正则表达式的布尔函数检查所有输入字符序列是否匹配正则表达式。
fun main(args: Array<String>){ val regex = """a([bc]+)d?""".toRegex() val matched1 = regex.matches(input = "xabcdy") val matched2 = regex.matches(input = "xabcdyabcd") val matched3 = regex.matches(input = "abcd") println(matched1) println(matched2) println(matched3) }
执行上面示例代码,得到以下结果 -
false false true
matchEntire(input: CharSequence): MatchResult?正则表达式示例
matchEntire()
函数用于匹配模式中的完整输入字符。
fun main(args: Array<String>){ val regex = Regex("abcd") val matchResult1 = regex.matchEntire("abcd")?.value val matchResult2 = regex.matchEntire("abcda")?.value val matchResult3 = Regex("""\d+""").matchEntire("100")?.value val matchResult4 = Regex("""\d+""").matchEntire("100 dollars")?.value println(matchResult1) println(matchResult2) println(matchResult3) println(matchResult4) }
执行上面示例代码,得到以下结果 -
abcd null 100 null
find(input: CharSequence, startIndex: Int = 0): MatchResult? 正则表达式示例
find
函数用于从regex
对象中查找输入字符序列。
fun main(args: Array<String>){ val emailParttern = Regex("""\w+@[a-zA-Z_]+?\.[a-zA-Z]{2,6}""") val email :String? = emailParttern.find("this is my email mymail@google.com")?.value println(email) val phoneNumber :String? = Regex(pattern = """\d{3}-\d{3}-\d{4}""") .find("phone: 123-456-7890, e..")?.value println(phoneNumber) }
执行上面示例代码,得到以下结果 -
mymail@google.com 123-456-7890
findAll(input: CharSequence, startIndex: Int = 0): Sequence 正则表达式示例
正则表达式的findAll()
函数在提供的模式的基础上返回匹配结果的序列。
fun main(args: Array<String>){ val foundResults = Regex("""\d+""").findAll("ab12cd34ef 56gh7 8i") val result = StringBuilder() for (findText in foundResults) { result.append(findText.value + " ") } println(result) }
执行上面示例代码,得到以下结果 -
12 34 56 7 8
replace(input: CharSequence, replacement: String): String 正则表达式示例
Regex replace()
函数用指定的替换字符串替换输入字符序列中的所有匹配模式。
fun main(args: Array<String>){ val replaceWith = Regex("beautiful") val resultString = replaceWith.replace("this picture is beautiful","awesome") println(resultString) }
执行上面示例代码,得到以下结果 -
this picture is awesome
replaceFirst(input: CharSequence, replacement: String): String 正则表达式示例
正则表达式replaceFirst()
函数用指定的替换字符串替换输入字符序列中第一次出现的匹配模式。
fun main(args: Array<String>){ val replaceWith = Regex("beautiful") val resultString = replaceWith.replaceFirst("nature is beautiful, beautiful is nature","awesome") println(resultString) }
执行上面示例代码,得到以下结果 -
nature is awesome, beautiful is nature
split(input: CharSequence, limit: Int = 0): List 正则表达式示例
regex split()
函数根据提供的模式拆分输入字符序列。 此拆分值放在List
中返回。
fun main(args: Array<String>){ val splitedValue = Regex("""\d+""").split("ab12cd34ef") val nonsplited= Regex("""\d+""").split("nothing match to split" ) println(splitedValue) println(nonsplited) }
执行上面示例代码,得到以下结果 -
[ab, cd, ef] [nothing match to split]
上一篇:从Java调用Kotlin代码
下一篇:Kotlin正则表达式模式
扫描二维码
程序员编程王