如何使用Kotlin Regex(详细指南)

511 阅读1分钟

KotlinRegex 类可以用来创建一个正则表达式模式,帮助你找到或替换匹配的字符串。

Regex 类的语法如下:

Regex(pattern: String, option: RegexOption)
// or pass multiple options as a Set

Regex(pattern: String, option: Set<RegexOption>)

让我们来看看Regex 的操作实例。

要创建一个正则表达式模式,创建一个新的Regex 类的实例,如下所示:

val regex = Regex("Island")
val text = "The Great Britain Island is located east of the Island of Ireland"
val matches = regex.findAll(text)
matches.forEach {
println(it.value)
}
// result:
// Island
// Island

然后,Regex 类的实例可以通过调用该实例的特定方法来搜索或替换任何字符串文本。

在上面的例子中,调用findAll() 方法,从text 变量值中搜索Island 的字符串。

你还可以向Regex 调用传递第二个参数,如下所示。

你可以从Regex 对象中调用的方法列表可以在Kotlin文档中找到。

一些最有用的方法如下:

  • find()
  • findAll()
  • matchAt()
  • matchEntire()
  • replace()
  • replaceFirst()

Kotlin也有 RegexOption枚举类,用于设置运行方法的选项。

可用选项的列表如下:

  • IGNORE_CASE
  • MULTILINE
  • LITERAL
  • UNIX_LINES
  • COMMENTS
  • DOT_MATCHES_ALL
  • CANON_EQ

例如,下面的代码用Isle 替换了单词Island ,同时忽略了案例:

val regex = Regex("island", RegexOption.IGNORE_CASE)
val text = "The Great Britain Island is located east of the Island of Ireland"
val newText = regex.replace(text, "isle")
println(newText)
// output:
// The Great Britain isle is located east of the isle of Ireland

你可以创建任何一种有效的正则表达式来与KotlinRegex 类一起使用。