如何在标签之间使用正则表达式信息?

时间:2012-03-16 15:05:11

标签: regex scala

我正在尝试使用正则表达式模式来获取特定标记之间的信息,如下所示:

val input = """#<tag>
  Information 1
  Information 2
  Information 3
#</tag>""".stripMargin

val testPattern = """#<tag>(.*?)#<\/tag>""".r
testPattern.findAllIn(input) foreach { println(_) }

但这让我很遗憾没有比赛。因为我不是一个正则表达的大师:我在这里想念什么?

提前致谢。

1 个答案:

答案 0 :(得分:4)

默认情况下,点(.)与新行不匹配。您可以按如下方式更改此行为:

val testPattern = """(?s)#<tag>(.*?)#</tag>""".r

请注意(?s),它是触发新行为的“embedded flag expression”。

此外,this related question也可能会针对您可能遇到的相关问题提供一些答案。