我正在尝试从多行正则表达式中捕获内容。它不匹配。
val text = """<p>line1
line2</p>"""
val regex = """(?m)<p>(.*?)</p>""".r
var result = regex.findFirstIn(text).getOrElse("")
返回空。
我把 m - 标志放在多行上,但在这种情况下似乎没有帮助。
如果我删除换行符,则正则表达式有效。
我还找到了 this但无法让它工作。
我如何匹配
<p>
之间的内容元素?我想要之间的一切,还有换行符。提前致谢!
最佳答案
如果要在scala中激活dotall模式,必须使用(?s)
而不是 (?m)
(?s)
表示点可以匹配换行符(?m)
意味着 ^
和 $
代表行首和行尾
关于regex - Scala 中的多行正则表达式捕获,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17128158/