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

作者:子不语Any 时间:2023-06-22 02:06:29 

前言

回想一下,在学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

标签:Kotlin,Regex,正则表达式
0
投稿

猜你喜欢

  • Android Scroll实现弹性滑动_列表下拉弹性滑动的示例代码

    2022-02-07 16:01:49
  • 使用java采集京东商城行政区划数据示例

    2023-04-17 06:31:52
  • Java class文件格式之常量池_动力节点Java学院整理

    2023-04-14 07:14:06
  • C#实现自定义定时组件的方法

    2023-06-04 12:36:26
  • 如何用120行Java代码写一个自己的区块链

    2023-07-17 03:44:33
  • UnityWebRequest前后端交互实现过程解析

    2021-09-07 01:24:42
  • C# WebApi CORS跨域问题解决方案

    2022-12-21 05:01:33
  • Spring Cloud 配置中心内容加密的配置方法

    2023-02-11 09:05:15
  • Java框架---Spring详解

    2021-07-09 14:27:30
  • VSCode配置C语言环境的方法

    2022-11-07 18:47:36
  • Java求解二叉树的最近公共祖先实例代码

    2023-09-14 18:24:56
  • Android app启动图适配方法实例

    2023-07-31 16:23:34
  • Android实现图片循环播放的实例方法

    2022-08-27 11:36:21
  • Java数据结构之链表详解

    2023-10-20 09:14:08
  • java开发实现五子棋游戏

    2021-09-07 12:41:32
  • Struts 2中的constant配置详解

    2023-11-10 08:18:18
  • Log4j.properties配置及其使用

    2023-05-14 21:06:18
  • 通过代码快速理解Java的三种代理模式

    2023-03-28 01:13:57
  • linux下c语言的多线程编程

    2023-06-29 09:52:42
  • SpringBoot 2.x整合Log4j2日志的详细步骤

    2022-08-05 09:50:19
  • asp之家 软件编程 m.aspxhome.com