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

如何删除正则匹配组中的第二行?满足上下文条件的文本行删除求助

删除满足特定条件的中间行的正则替换方案

原始输入文本

ABC
5
0
gdfgdfg
-----------
GHN
3
0
ffffffff
fffff
ffff
trte
-------------
H
1
0
----------------

期望处理结果

ABC

0
gdfgdfg
-----------
GHN

0
ffffffff
fffff
ffff
trte
-------------
H

0
----------------

需求说明

需要删除满足以下条件的行:

  • 该行上一行是非空且以字符开头的内容
  • 该行下一行是仅包含0的行
  • 目标行本身是单个0-9的数字

解决方案

你已经写出了能匹配这三行的正则表达式:

^(.+\S)$\R^(\d+)$\R^(0)$

要删除中间的数字行,只需在替换时保留第一行和第三行的内容,舍弃中间的第二行即可:

替换规则

  • 查找内容(需开启多行模式multiline和全局模式global):
    ^(.+\S)$\R^(\d+)$\R^(0)$
    
  • 替换内容:
    $1\n\n$3
    

原理说明

  • $1对应正则中第一个捕获组,即上一行的非空字符行
  • \n\n用来替换原本中间的数字行,留下一个空行
  • $3对应正则中第三个捕获组,即下一行的仅含0的行

通过这个替换规则,就能精准删除符合条件的数字行,同时保留前后行的结构,得到你想要的结果。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.30 11:26:09