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

如何用单次正则替换提取指定位置子串并去除前导零

单次正则替换实现需求的方案

最终正则配置

  • 匹配正则:^.{48}0*([1-9]\d*).*
  • 替换字符串:$1

如果需要兼容目标10位全为零的场景,可将匹配正则调整为^.{48}0*(0|[1-9]\d*).*,避免捕获结果为空。

实现原理

  1. 匹配逻辑拆解:
    • ^.{48}:匹配字符串开头的前48个字符,直接跳过不需要的前缀内容
    • 0*:匹配第49位开始的目标10位子串的所有前导零,该部分不做捕获
    • ([1-9]\d*):捕获目标子串中从第一个非零数字开始的剩余有效数字,即去前导零后的结果
    • .*:匹配目标10位子串之后的所有剩余内容,直接忽略
  2. 替换时直接输出捕获组$1的内容,单次替换即可得到目标结果

验证效果

输入你的原始字符串:

020075307354H         021133360876      981497910079937800ABC              CDE              FGH                THY                0M19780403015001O+2¹qujzh_¢o\piVN¤«²µerNA¥\^?©E|=V_®¢Zu<£;Æ^TV½IÌc¤±·Gl.ÁEÊO·9y¹Bs¾Ë©ºFT¥*ÉA¬=iÚÒ®{æ*»¨;ÄNÕ®Ûòæ¦'Ñ…9>ÙYKè¹t/R{(>ÔÕBã2½7q¹|u…nztf~¦spw_ZX£\¦~Qa²mn¡¨QX«W±¯¯¦¨d£¾}·`B¶M}Qc|AµOÇ~Äd¤·¯HÇaI_¶²ÂÆYC?xÄR²>½HpÃjÁNLifm@ÕEí¾)ZvÇÊzØ)D&¦áÑM¡ç…1F¥Åh9R[9Fä¤Ãå<÷¼T}Ã…©ÎCDNs«E`É?¤eñ/ï´¯Åíÿt

替换后输出结果为79937800,完全符合要求。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.05 17:57:03