多行正则表达式溢出项目

时间:2014-07-07 14:46:16

标签: regex scala

这是我想要正则表达式的字符串:

(roman)
item(Hello
World)
item(Foo bar)

正则表达式"item\\(.*\\)".r仅在没有\n个字符时才有效。 我发现,(?s)应该有所帮助。 但"(?s)item\\(.*\\)".r也包含第二项。

我想要的结果是这样的List(Hello\nWorld, Foo bar)。 这种符号有可能是正则表达式吗?或者什么是符号,允许使用多行正则表达式?

1 个答案:

答案 0 :(得分:1)

试试这个(将 str 设置为上面的字符串):

"""item\(([^)]*)\)""".r.findAllMatchIn(str).map{_.group(1)}.toList

通常最好是查找最终字符的字符序列,而不是任何字符。