怎样在scala正则表达式提取器中使用小括号

有没有人在啊,想请说下,怎样在scala正则表达式提取器中使用小括号
最新回答
我想和你有个家

2024-04-14 05:50:39

不是可以吗?
看看Regex的unapplySeq方法:

m.group(1 to groupCount) 是全取出来了,所以小括号套小括号也没问题:


 

浪徒

2024-04-14 09:03:40

匹配数字正则式为例:
scala> val Num = """((?:0|[1-9]\d*)(?:\.\d*)?)""".r
Num: scala.util.matching.Regex = ((?:0|[1-9]\d*)(?:\.\d*)?)
scala> val Num(x) = "12.35"
x: String = 12.35
可以看到,Num正则式中一共有三对小括号,但是我们关心的只是整个数字,所以希望写成Num(x)这种形式,而不是把其它两个不想要的小括号也出现。正如我代码里面写的。