You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Scala正则表达式:如何匹配多行正则模式的所有匹配项

解决Markdown链接引用匹配问题

问题分析

  • 第一个正则表达式无匹配结果:默认模式下^和$仅匹配整个字符串的首尾,而非每行的首尾,无法命中多行字符串中的独立链接引用行。
  • 第二个正则错误匹配行内内容:缺少行首尾锚定,导致匹配到文本行内的链接引用标记,而非独立的链接引用定义行。

解决方案

在正则开头添加(?m)启用多行模式,让^匹配每行开头、$匹配每行结尾,同时保留行首尾锚定,确保只匹配独立存在的Markdown链接引用定义:

val str = """
[1] hello
[2] world
some text with [a][2]

[3] bye bye
  """

// 启用多行模式,锚定每行首尾,精准匹配独立链接引用行
val regex = """(?m)^ {0,3}(\[[^\]]+\])(.+)$""".r

for m <- regex.findAllMatchIn(str) do 
  println(s"匹配到引用ID:${m.group(1)},内容:${m.group(2).trim}")

运行结果

代码会输出:

匹配到引用ID:[1],内容:hello
匹配到引用ID:[2],内容:world
匹配到引用ID:[3],内容:bye bye

内容的提问来源于stack exchange,提问作者M Ahsan Al Mahir

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.19 18:45:38