regex - 用丰富的字符串魔法从字符串中提取数字

标签 regex scala pattern-matching

我想提取以下字符串模式的 ID 列表:
{(2),(4),(5),(100)}

注意:没有前导或尾随空格。

列表最多可以有 1000 个 ID。

我想使用丰富的字符串模式匹配来做到这一点。但我沮丧地尝试了 20 分钟。

谁能帮我想出正确的模式?非常感激!

最佳答案

这是蛮力字符串操作。

scala> "{(2),(4),(5),(100)}".replaceAll("\\(", "").replaceAll("\\)", "").replaceAll("\\{","").replaceAll("\\}","").split(",")

res0: Array[java.lang.String] = Array(2, 4, 5, 100)

这是@pst 在评论中指出的正则表达式。如果您不希望括号将正则表达式更改为 """\d+""".r .
val num = """\(\d+\)""".r
"{(2),(4),(5),(100)}" findAllIn res0
res33: scala.util.matching.Regex.MatchIterator = non-empty iterator

scala> res33.toList
res34: List[String] = List((2), (4), (5), (100))

关于regex - 用丰富的字符串魔法从字符串中提取数字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14164478/

相关文章:

regex - 匹配 "articles"但不匹配 "articles-main"的正则表达式?

javascript - 如何改进多字匹配正则表达式

parsing - scala 解析器组合器 stackoverflow 递归

regex - 独立于符号的字符串模式匹配

regex - Python正则表达式从字符串中提取电话号码

regex - 使用正则表达式 (.NET) 标记复杂字符串(Snort 规则)

Java正则表达式将字符串拆分为数字数组

scala - 每次需要没有重复的序列时使用 Set 而不是 Seq 是一种好习惯吗?

java - scala反射错误java

scala - 是否可以将命名参数用于 Scala 案例类匹配?