Kotlin语言编程Regex正则表达式实例详解

 更新时间:2022年08月29日 16:18:20   作者:子不语Any  
这篇文章主要为大家介绍了Kotlin语言编程Regex正则表达式实例详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪

前言

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

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开始
fun matchEntire(input: CharSequence): MatchResult?用于匹配模式中的完整输入字符
fun matches(input: CharSequence): Boolean输入字符序列是否与正则表达式匹配
fun replace(input: CharSequence, replacement: String): String用给定的替换字符串替换正则表达式的所有输入字符序列

示例展示

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

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 = false
matched2 = 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中的正则形式类比,会掌握的更牢固。

以上就是Kotlin语言编程Regex正则表达式实例详解的详细内容,更多关于Kotlin Regex正则表达式的资料请关注脚本之家其它相关文章!

相关文章

  • 深入浅出讲解Spring框架中AOP及动态代理的应用

    深入浅出讲解Spring框架中AOP及动态代理的应用

    在软件业,AOP为Aspect Oriented Programming的缩写,意为:面向切面编程,通过预编译方式和运行期间动态代理实现程序功能的统一维护的一种技术
    2022-03-03
  • SpringBoot如何集成Token

    SpringBoot如何集成Token

    文章介绍了如何使用jjwt插件实现Token的生成和校验,该插件可以直接与SpringBoot集成,Token由三部分组成,分别是header、payload和signature,通过在请求头中传递Token,后端可以验证其合法性,从而提高安全性
    2025-01-01
  • 整理java读书笔记十五之java中的内部类

    整理java读书笔记十五之java中的内部类

    内部类是指在一个外部类的内部再定义一个类。类名不需要和文件夹相同。本文给大家分享java读书笔记十五之java中的内部类,对java读书笔记相关知识感兴趣的朋友一起学习吧
    2015-12-12
  • Java中文件写入内容的几种常见方法

    Java中文件写入内容的几种常见方法

    本文主要介绍了Java中文件写入内容的几种常见方法,主要包括使用NIO的Files工具类、通过commons-io的FileUtils工具类、RandomAccessFile、PrintWriter和BufferedWriter这几种,具有一定的参考价值,感兴趣的可以了解一下
    2023-10-10
  • 如何解决Could not transfer artifact org.springframework.boot问题

    如何解决Could not transfer artifact org.spri

    在Maven更新过程中遇到“Could not transfer artifact org.springframework.boot”错误通常是由于网络问题,解决方法是在Maven的设置中忽略HTTPS,添加特定语句后,可以正常下载依赖,但下载速度可能较慢,这是一种常见的解决方案,希望对遇到相同问题的人有所帮助
    2024-09-09
  • 使用Java实现获取文件MD5值工具类

    使用Java实现获取文件MD5值工具类

    我们在工作中通常使用MD5对文件进行校验完整性,比较,提高安全性等,这篇文章主要为大家详细介绍了Java如何编写一个实现获取文件MD5值的工具,需要的可以参考下
    2023-12-12
  • java 根据前端返回的字段名进行查询数据

    java 根据前端返回的字段名进行查询数据

    本文介绍了如何在Java中使用SpringDataJPA实现动态查询功能,以便根据前端传递的字段名动态构建查询语句,通过创建实体类、Repository接口、构建动态查询、在Service层和Controller中使用动态查询,实现了前后端分离架构中的灵活查询需求
    2024-11-11
  • 教你创建springcloud微服务的基础子服务的超详细过程

    教你创建springcloud微服务的基础子服务的超详细过程

    这篇文章主要介绍了创建springcloud微服务的基础子服务,主要是创建两个springboot服务,在教程中增加springcloud相关组件,本文分步骤给大家介绍的非常详细,需要的朋友可以参考下
    2022-04-04
  • 解决java连接zookeeper很慢的问题

    解决java连接zookeeper很慢的问题

    这篇文章主要介绍了解决java连接zookeeper很慢的问题,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2021-11-11
  • Java Swing实现窗体添加背景图片的2种方法详解

    Java Swing实现窗体添加背景图片的2种方法详解

    这篇文章主要介绍了Java Swing实现窗体添加背景图片的2种方法,结合实例形式较为详细的分析了Swing实现窗体添加背景图片的方法,并总结分析了Swing重绘中repaint与updateUI的区别,需要的朋友可以参考下
    2017-11-11

最新评论