写点什么

Kotlin 中 Regex 正则表达式 (上)

作者:子不语Any
  • 2022-11-30
    湖南
  • 本文字数:881 字

    阅读完需:约 3 分钟

Kotlin中Regex正则表达式(上)

前言

回想一下,在学 Java 时接触的正则表达式,其实 Kotlin 中也是类似。只不过使用 Kotlin 的语法来表达,更为简洁。正则(Regex)用于搜索字符串或替换正则表达式对象,需要使用Regex(pattern:String)类。 在 Kotlin 中 Regex 是在 kotlin.text.regex 包。

Regex 构造函数

常用正则表达方法

示例展示

这里通过调用几个常见正则函数进行几组数据查找,展示常用正则表达式用法:

1.containsMatchIn(input: CharSequence) 包含指定字符串

使用场景:判定是否包含某个字符串


val regex = Regex(pattern = "Kot")val matched = regex.containsMatchIn(input = "Kotlin")
运行结果:matched = true
复制代码

2.matches(input: CharSequence) 匹配字符串

使用场景:匹配目标字符串


val regex = """a([bc]+)d?""".toRegex()val matched1 = regex.matches(input = "xabcdy")val matched2 = regex.matches(input = "abcd")
运行结果:matched1 = falsematched2 = true
复制代码

3.find(input: CharSequence, startIndex: Int = 0) 查找字符串,并返回第一次出现

使用场景:返回首次出现指定字符串


val phoneNumber :String? = Regex(pattern = """\d{3}-\d{3}-\d{4}""").find("phone: 123-456-7890, e..")?.value
结果打印:123-456-7890
复制代码

4.findAll(input: CharSequence, startIndex: Int = 0) 查找字符串,返回所有出现的次数

使用场景:返回所有情况出现目标字符串


val foundResults = Regex("""\d+""").findAll("ab12cd34ef 56gh7 8i")val result = StringBuilder()for (text in foundResults) {    result.append(text.value + " ")}
运行结果:12 34 56 7 8
复制代码

5.replace(input: CharSequence, replacement: String) 替换字符串

使用场景:将指定某个字符串替换成目标字符串


val replaceWith = Regex("beautiful")val resultString = replaceWith.replace("this picture is beautiful","awesome")
运行结果:this picture is awesome
复制代码

总结

通过 Kotlin 中封装好的正则函数表达式,按规定语法形式传入待查字符串数据以及规则就可以很高效获取到目标数据,它最大的功能就是在于此。可以与 Java 中的正则形式类比,会掌握的更牢固。

发布于: 刚刚阅读数: 3
用户头像

子不语Any

关注

If not now,when? 2022-09-17 加入

安卓攻城狮

评论

发布
暂无评论
Kotlin中Regex正则表达式(上)_android_子不语Any_InfoQ写作社区