我想提取以下字符串模式的 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/