You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Scala如何提取字符串中分隔符from之后的第一个单词

Scala 提取字符串中from后首个单词的实现方案

以下两种是常用的稳定实现,适配非固定长度的字符串场景:

方案1:正则匹配(更灵活,推荐)

直接通过正则捕获from后的第一个单词,自动适配from的任意位置、后面的多个空白字符:

val text = "This ball is from Rock. He is good boy"
// 正则说明:匹配from后接任意空白符,捕获第一个连续单词字符
val fromPattern = """from\s+(\w+)""".r
val result = fromPattern.findFirstMatchIn(text).map(_.group(1)).getOrElse("")
// 最终result值为 Rock

如果需要适配大小写不敏感的场景(比如匹配From、FROM),可以把正则修改为:

val fromPattern = """(?i)from\s+(\w+)""".r

方案2:单词拆分遍历(无需写正则)

先把字符串按空白分割为单词数组,定位到from的位置后取下一个单词,再过滤末尾标点即可:

val text = "This ball is from Rock. He is good boy"
val words = text.split("\\s+")
val fromIndex = words.indexOf("from")
val result = if (fromIndex != -1 && fromIndex < words.length - 1) {
  // 去掉单词末尾的非单词字符(比如示例中的句号)
  words(fromIndex + 1).replaceAll("\\W+$", "")
} else {
  "" // 未找到from时返回空字符串,可按需调整默认值
}
// 最终result值为 Rock

注意事项

  • 若from后第一个单词包含连字符、撇号等特殊字符,可调整正则的匹配规则,比如要匹配带连字符的单词可将\w+替换为[\w-]+
  • 两种方案都兼容任意长度、from任意位置的输入字符串

内容的提问来源于stack exchange,提问作者VnS

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.05 08:21:02