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

正则表达式:如何仅删除未闭合方括号行及无括号行的感叹号?

精准删除指定行感叹号的正则解决方案

问题场景

目标文本如下,需要保留第一行的!,删除第二、三行的!:

[some text !]
[some text !
some text !

原正则失效原因

你尝试的(?<!\[.*)(!)(?!.*\])无法正常工作,核心是多数正则引擎的后行断言不支持无限长度量词(如.*),且该表达式逻辑未区分行结构,无法精准定位目标!。

可行正则方案

方案1:按行结构匹配(推荐)

利用第一行是完整[...!](行尾带])的特征,匹配不在闭合[]行内的!:

!(?![^\[]*\])

逻辑解释:匹配后面没有](且中间无新的[)的!,刚好命中第二、三行的目标符号。将匹配结果替换为空即可完成需求。

方案2:按行位置匹配

若明确要删除除第一行外所有行的!,可开启多行模式(m修饰符)后使用:

!(?<!^.*!\]$)

逻辑解释:匹配不在以[开头、包含!且行尾是]的行中的!,即排除第一行的!。

内容的提问来源于stack exchange,提问作者akhiler

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.23 06:03:37