商城首页欢迎来到中国正版软件门户

您的位置: 首页 > 文章列表 > 编程开发 > VSCode正则表达式匹配多行实战案例

VSCode正则表达式匹配多行实战案例

  发布于2026-07-23 阅读(0)

扫一扫,手机访问

在 VS Code 中处理正则表达式多行匹配,很多开发者都会遇到一些让人头疼的细节。尤其是当你要匹配的字符串跨越多行时,默认的 . 并不匹配换行符,这就导致常规写法直接失效。下面通过几个实战案例,把常见场景和对应的解法一次性说清楚。

//test.js
const test = {
  str: 'VS Code 正则表达式匹配多行VS Code 正则表达式匹配多行VS Code 正则表达式匹配多行VS Code 正则表达式匹配多行VS Code 正则表达式匹配多行VS Code 正则表达式匹配多行VS Code 正则表达式匹配多行VS Code 正则表达式匹配多行VS Code 正则表达式匹配多行VS Code 正则表达式匹配多行',
  fn: function test() {
    alert(1)
  },
}

案例1:str(.|\n)*?,

VSCode正则表达式匹配多行实战案例

这段代码中,如果只想匹配 str 属性后面的整个字符串(直到遇到逗号),但字符串内部可能跨行,常规的 str.*?, 就行不通了。用 str(.|\n)*?, 就能让 . 也匹配换行符,从而拿到跨行的内容。注意这里的 ? 表示非贪婪匹配,否则会匹配到最后一个逗号。

案例2:const(.|\n)*?\}$

VSCode正则表达式匹配多行实战案例

要匹配整个 const test 对象声明,从 const 开始到最后一个 } 结束。这里用 const(.|\n)*?\}$ 就能搞定,注意结尾的 \}$ 转义了花括号,并且用 ? 控制贪婪度,避免匹配到后面可能出现的其他花括号。

案例3:fn(.|\n)*?\},

VSCode正则表达式匹配多行实战案例

匹配 fn 方法定义,从 fn 开始到 }, 结束。同样用 fn(.|\n)*?\}, 即可覆盖跨行情况。注意这里 }, 中的逗号是必须的,如果方法后面没有逗号,需要调整模式。

附:VS Code 正则表达式匹配多行console.log

很多朋友想批量移除项目中的 console.log,但 VS Code 的正则引擎和 Ja vaScript 的正则有些差异。网上常见的方案是 console.log.*$,但这只能匹配单行。如果 console.log() 括号里的内容跨行,这个写法就捉襟见肘了。经过测试,下面两个表达式都能完美覆盖跨行情况:

console\.log\((.|\n)*?\);?

这个能匹配从 console.log( 到最近的 );) 结束,注意括号内如果还有嵌套的 ) 可能会提前终止。另一个方案是:

console\.log\([^()\r]*.*\);*

这个利用 [^()\r] 排除括号和回车,再配合 .* 捕获换行,也能稳定工作。两个方案各有侧重,建议根据实际代码中的括号嵌套情况选择。

本文转载于:https://www.jb51.net/program/317835m83.htm 如有侵犯,请联系zhengruancom@outlook.com删除。
免责声明:正软商城发布此文仅为传递信息,不代表正软商城认同其观点或证实其描述。

热门关注