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

求助:正则表达式替换指定百分比字符串并保留0%和100%

正则表达式解决方案

要实现保留0%和100%、删除其他所有百分比字符串的需求,你需要匹配数字部分既不是0也不是100的完整百分比组合,而非仅匹配%符号。以下是正确的实现方案:

最终正则表达式

\b(?!0\b|100\b)\d+%

替换规则

将匹配到的内容直接替换为空字符串即可。

工作原理

  • \b:单词边界,确保匹配的是完整独立的数字(避免误匹配1000%中的100片段)。
  • (?!0\b|100\b):负向前瞻断言,明确排除两种需要保留的情况:
    • 0\b:单独的数字0(搭配单词边界,避免误判00%这类非目标字符串)
    • 100\b:单独的数字100
  • \d+%:匹配一个或多个数字,后跟%符号,形成完整的百分比字符串。

测试示例

  • 原字符串:aaa 0% bbb → 无匹配结果 → 处理后:aaa 0% bbb(保留目标内容)
  • 原字符串:aaa 40% bbb → 匹配40% → 处理后:aaa bbb(删除非目标百分比)
  • 原字符串:100% test 183% foo 7% bar → 匹配183%、7% → 处理后:100% test foo bar

你之前的正则无效原因

你使用的(?<!(0|100))%是负向后行断言,仅检查%前面的内容不是0或100,但并未匹配%前的数字部分,因此只会删除%符号,留下数字。我们需要将数字与%作为整体匹配并删除,才能实现需求。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.14 04:48:18