You need to enable JavaScript to run this app. 结尾的内容块", "description": "", "datePublished": "2026-04-22T15:25:28.000Z", "author": { "@type": "Person", "name": "开发者阿泽" }, "publisher": { "@id": "https://www.volcengine.com/#organization" }, "isPartOf": { "@id": "https://www.volcengine.com/#website" }, "keywords": "", "inLanguage": "zh-CN" }, { "@type": "Organization", "@id": "https://www.volcengine.com/#organization", "name": "火山引擎", "url": "https://www.volcengine.com/", "logo": { "@type": "ImageObject", "url": "https://lf3-static.bytednsdoc.com/obj/eden-cn/shayvw_lmjsvc/ljhwZthlaukjlkulzlp/logo-theme-light.svg" } }, { "@type": "WebSite", "@id": "https://www.volcengine.com/#website", "url": "https://www.volcengine.com/", "name": "火山引擎", "publisher": { "@id": "https://www.volcengine.com/#organization" } } ] }
优惠活动
大模型
产品
解决方案
定价
更多

如何使用正则表达式匹配并删除以<script type="application/ld+json">开头、</script>结尾的内容块

如何使用正则表达式匹配并删除以结尾的内容块

嘿,我懂你现在的烦恼——想用正则删掉那些包含JSON-LD的script代码块,但自己写的表达式不管用对吧?我来帮你分析下问题,再给你几个靠谱的解决方案。

首先,你原来的正则(?<=<script type="application/ld+json">).*(?=</script>)有几个明显的问题:

  • .*不匹配换行:默认情况下,正则里的.不会匹配换行符,而你的目标内容块有大量换行,所以根本匹配不到完整的内容。
  • +没转义:正则里的+是量词(表示前面的字符出现1次或多次),你这里的ld+json里的+是字面量,必须转义成\+才能正确匹配。
  • 贪婪匹配风险:就算解决了换行问题,默认的*是贪婪模式,可能会匹配到页面最后一个</script>,误删其他正常的script标签。

靠谱的解决方案

根据不同的使用场景,给你两种常用的正则写法:

写法一:直接匹配整个标签块(推荐,兼容性更好)

<script type="application/ld\+json">[\s\S]*?</script>
  • [\s\S]:匹配所有字符(包括换行符),等效于开启DOTALL模式的.,适配各种工具。
  • *?:非贪婪量词,确保匹配到第一个</script>就停止,避免误删后续内容。
  • \+:转义后的加号,正确匹配标签里的ld+json字符串。

写法二:基于你原来的lookaround思路(部分工具支持)

如果你坚持用前后断言的方式,可以调整成这样:

(?<=<script type="application/ld\+json">)[\s\S]*?(?=</script>)

不过要注意:有些工具(比如早期的JavaScript环境)不支持可变长度的正向预查,所以这种写法兼容性不如第一种。

使用示例(以VS Code为例)

  1. 按下Ctrl+H打开替换面板
  2. 点击面板右侧的.*图标,开启正则表达式模式
  3. 在“查找内容”框输入上面的正则
  4. “替换为”框留空,点击“全部替换”就能删掉所有目标块了

额外提示

如果你的页面里这类script标签还有额外属性(比如id或者class),可以把正则调整得更灵活:

<script.*?type="application/ld\+json">[\s\S]*?</script>

这样就能匹配任意属性的JSON-LD类型script标签了。

备注:内容来源于stack exchange,提问作者Just Me

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.22 15:25:27