Kotlin语言编程Regex正则表达式实例详解
作者:子不语Any 发布时间:2023-06-22 02:06:29
标签: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
来源:https://juejin.cn/post/7137118892769411086


猜你喜欢
- 本文实例为大家分享了C#添加读取Word脚注尾注的具体代码,供大家参考,具体内容如下脚注和尾注是对文本的补充说明。脚注一般位于页面的底部,可
- 本文实例讲述了Java链表(Linked List)基本原理与实现方法。分享给大家供大家参考,具体如下:在分析链表之前,我们先来对之前的动态
- 使用类的全权名: System.Text.StringBuilder sb = new System.Text.StringBuilder(
- 前言本文主要学习函数的相关内容。1、函数是什么? * 中对函数的定义:子程序在计算机科学中,子程序(英语:Subroutine, proc
- 本文实例讲述了C#获取每个年,月,周的起始日期和结束日期的方法。分享给大家供大家参考,具体如下:我们在写程序的时候往往要计算出年,月,周的开
- 1.使用IDEA新建项目2.选择创建Maven工程3.填写GroupId和ArtifactId4.填写项目名称,与上一步的ArtifactI
- 本文实例为大家分享了WPF实现背景灯光随鼠标闪动的具体代码,供大家参考,具体内容如下实现效果如下:思路:将容器分割成组合三角形Path,鼠标
- 类加载器类加载器作用负责将.class文件(存储的物理文件)加载到内存中类加载器过程加载:通过全类名获取这个类准备用流传输,加载进内存,加载
- ClickHouse应用场景:1.绝大多数请求都是用于读访问的2.数据需要以大批次(大于1000行)进行更新,而不是单行更新;或者根本没有更
- JAVA中去掉空格 1. String.trim() trim()是去掉首尾空格 2.str
- 第一步:配置管理器中新建解决方案配置第二步:定义条件编译符号:第三步:在代码中使用自定义的条件编译#if CustomDebugConsol
- 素数就是质数,就是只能被1整除,不能被其他数整除的数java程序为:public static void main(String[] arg
- 尽管在实际开发过程中,我们一般使用ORM框架来代替传统的JDBC,例如Hibernate或者iBatis,但JDBC是Java用来实现数据访
- 前言在使用Webview进行滑动操作时,从屏幕可见区域外向内滑动时,会出现webview区域闪烁的问题(反之也是),本文将提供一种解决方案。
- springboot Interceptor * excludePathPatterns忽略失效excludePathPatterns方法是
- 背景使用flowable自带的flowable-ui制作流程图使用springboot开发流程使用的接口完成流程的业务功能一、flowabl
- 1.背景选择器(位于res/drawable/,使用方法:android:background=”@drawable/XXX”) <?
- 1. 异常1.1 try…catch异常处理try catch的异常处理的格式写法 :try{ &nbs
- 概念Drawable表示一种可以在Canvas上进行绘制的抽象的概念,它有很多种,常见的如颜色和图片都可以是一个Drawable。优点首先,
- 在《Spring Boot Hello World》中介绍了一个简单的spring boot例子,体验了spring boot中的诸多特性,