本文概述
- Kotlin Regex构造函数
- 正则表达式功能
Kotlin Regex构造函数
Regex(pattern: String) | 它根据给定的字符串模式创建一个正则表达式。 |
正则表达式(模式:字符串, 选项:RegexOption) | 它根据给定的字符串模式和给定的单个选项创建一个正则表达式。 |
正则表达式(模式:字符串, 选项:Set < RegexOption> ) | 它根据给定的字符串模式和给定的选项集创建一个正则表达式。 |
功能 | 说明 |
---|---|
fun containsMatchIn(input:CharSequence):布尔值 | 它表示正则表达式至少包含一个输入字符 |
有趣的发现(输入:CharSequence, startIndex:Int = 0):MatchResult? | 从给定的startIndex开始, 它返回输入字符序列中正则表达式的第一个匹配项。 |
有趣的findAll(输入:CharSequence, startIndex:Int = 0):Sequence < MatchResult> | 它从给定的startIndex开始, 返回输入字符串中所有出现的正则表达式。 |
funmatchEntire(input:CharSequence):MatchResult? | 它用于匹配模式中完整的输入字符。 |
中缀趣味匹配项(输入:CharSequence):布尔值 | 它指示是否所有输入字符序列都在正则表达式中匹配。 |
有趣的替换(输入:CharSequence, 替换:字符串):字符串 | 它用给定的替换字符串替换正则表达式的所有输入字符序列。 |
fun replaceFirst(输入:CharSequence, 替换:String):字符串 | 它用给定的替换字符串替换给定的输入字符串中的第一次出现的正则表达式。 |
fun split(输入:CharSequence, 限制:Int = 0):List < String> | 它分割正则表达式的输入字符序列。 |
fun toPattern():模式fun toString():字符串 | 它以字符串形式返回正则表达式。 |
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
匹配的正则表达式示例(输入:CharSequence):布尔值
matchs(input:CharSequence):regex布尔函数会检查所有输入字符序列是否匹配正则表达式。
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)}
输出:
falsefalsetrue
matchEntire(输入:CharSequence)的正则表达式示例:MatchResult?
matchEntire()函数用于匹配模式中的完整输入字符。
fun main(args: Array<
String>
){val regex = Regex("abcd")val matchResult1 = regex.matchEntire("abcd")?.valueval matchResult2 = regex.matchEntire("abcda")?.valueval matchResult3 = Regex("""\d+""").matchEntire("100")?.valueval matchResult4 = Regex("""\d+""").matchEntire("100 dollars")?.valueprintln(matchResult1)println(matchResult2)println(matchResult3)println(matchResult4)}
输出:
abcdnull100null
正则表达式示例offind(输入:CharSequence, startIndex:Int = 0):MatchResult?
查找功能用于从正则表达式对象中查找输入字符序列。
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")?.valueprintln(email)val phoneNumber :String? = Regex(pattern = """\d{3}-\d{3}-\d{4}""").find("phone: 123-456-7890, e..")?.value println(phoneNumber)}
输出:
mymail@google.com123-456-7890
正则表达式示例offindAll(input:CharSequence, startIndex:Int = 0):Sequence < MatchResult>
regex的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
替换的正则表达式示例(输入:CharSequence, 替换: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
正则表达式ofreplaceFirst(输入:CharSequence, 替换:字符串):字符串
Regex 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(输入:CharSequence, 限制:Int = 0):List < String>
regex split()函数根据提供的模式拆分输入字符序列。此拆分值在列表中返回。
fun main(args: Array<
String>
){val splitedValue = http://www.srcmini.com/Regex("""\d+""").split("ab12cd34ef")val nonsplited= Regex("""\d+""").split("nothing match to split" )println(splitedValue)println(nonsplited)}
【Kotlin正则表达式】输出:
[ab, cd, ef][nothing match to split]
推荐阅读
- Kotlin正则表达式模式
- Kotlin反射
- Kotlin递归函数
- Kotlin运算符
- Kotlin Null安全类型
- Kotlin嵌套try-catch块
- Kotlin嵌套类和内部类
- Kotlin MutableSet接口
- Kotlin MutableMap接口