regex - Kotlin 正则表达式拆分 - 删除尾随空格

标签 regex kotlin

在 Kotlin 中,我将句子拆分为单词。 split然而,方法在列表的末尾添加了一个空格。如何摆脱尾随空间?
有没有一种简单的方法可以在不创建新列表的情况下做到这一点?

package com.zetcode

fun main(args: Array<String>) {

    val text = "I saw a fox in the wood. The fox had red fur."

    val pattern = "\\W+".toRegex()

    val words = pattern.split(text)

    println(words)
}

该示例打印 [I, saw, a, fox, in, the, wood, The, fox, had, red, fur, ]

最佳答案

空项目出现在那里,因为您的字符串有一个非单词 .字符在末尾。您可以省略空项目来解决问题:

val text = "I saw a fox in the wood. The fox had red fur."
val pattern = """\W+""".toRegex()
val words = pattern.split(text).filter { it.isNotBlank() }
println(words) // => [I, saw, a, fox, in, the, wood, The, fox, had, red, fur]

或者,使用具有相反模式的匹配方法,\w+ :
val pattern = """\w+""".toRegex()
val words = pattern.findAll(text).map{it.value}.toList()
// => [I, saw, a, fox, in, the, wood, The, fox, had, red, fur]

关于regex - Kotlin 正则表达式拆分 - 删除尾随空格,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51965340/

相关文章:

javascript - 如何使用正则表达式验证多封电子邮件?

c# - 正则表达式可以匹配交错匹配吗?

regex - 邮件::RFC822::地址正则表达式

kotlin - runBlocking 协程不会阻止 GlobalScope.launch (?)

android - 我怎样才能在 Kotlin 中简化这个单例?

java - 查询类Scanner的一个方法

php - 正则表达式查找除 x,a,n,- 之外的所有字符

android - null 不能转换为非 null 类型 kotlin.collections.List - kotlin

unit-testing - RxJava observable 已完成,但单元测试中未触发 doOnComplete 回调

android - Kotlin 流中缓冲区之间的差异