scala Regex:在两个字符串之间查找字符串

时间:2015-10-13 21:02:16

标签: regex scala

我的字符串如下:

val str = "$(foo) == 123 AND $(bar) == 321"

我想解析这个get:List(foo, bar)。最好的方法是什么?

这就是我的尝试:

val p = """\$\(.*?\)""".r
p.findAllIn(str).toList

但我得到的结果是:List($(foo), $(bar))

我如何获得List(foo, bar)

1 个答案:

答案 0 :(得分:1)

使用带有否定字符类的后视:

val p = """(?<=\$\()[^()]*""".r

请参阅IDEONE demo

(?<=\$\()后视将确保我们仅在$(之后开始匹配,并且我们将匹配(和{{1}以外的所有字符(0或更多)与)