regex - Scala 中的多行正则表达式捕获

标签 regex scala

我正在尝试从多行正则表达式中捕获内容。它不匹配。

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/

相关文章:

javascript - 使用 JavaScript 将指数 LaTeX 语法转换为 PHP 的 pow()

python - 用 python 正则表达式从旧字符串计算出的新字符串替换子字符串

javascript - 为什么 Javascript 正则表达式中的 "or"运算符没有被转义

java - 正则表达式解析Java中的类声明行

scala - 使用 sbt 进行 token 替换(资源过滤)

java - 从 Java 到 Scala : SensorManager

C++11 正则表达式抛出 std::regex_error

scala - 如何将元素附加到 HList

scala - 在没有继承层次结构的scala中编写通用代码

scala - 如何在 Spark 中处理 XML 文件?