小编Squ*_*oot的帖子

在 Scala 中通过正则表达式从字符串中获取元组

我有这样的字符串,{param1=foo}{param2=bar}hello world!
我需要从这个字符串中提取元组数组(paramName, value)并得到类似的东西[(param1, foo), (param2, bar)]

在 Scala 中是否可以仅通过一个正则表达式来提取这个元组?因为我只能以类似的方式做到这一点

val str = "{param1=foo}{param2=bar}hello world!"
val param = """(?<=\{)(.+?)(?=\})""".r // extract everything between { and }
val keyValue = """(.+)=(.+)""".r // for extracting key and value
val parameters = for (keyValue(key,value) <- param.findAllIn(str).toArray) 
                     yield (key,value)
Run Code Online (Sandbox Code Playgroud)

而且看起来不甜。

我也尝试使用

val param = """(?<=\{)(.+?)=(.+?)(?=\})""".r
Run Code Online (Sandbox Code Playgroud)

但它param=value作为一个字符串返回

regex scala

2
推荐指数
1
解决办法
1814
查看次数

标签 统计

regex ×1

scala ×1