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

正则表达式需求:捕获除Ess与Nb间空白外的所有空白字符

解决方案

要实现捕获所有空白字符但排除Ess和Nb之间的两个空格,可以根据运行环境选择以下两种正则方案:

方案一:PCRE环境(PHP、Python、Perl等)

利用(*SKIP)(*FAIL)标记跳过不需要的片段,语法直观易懂:

(?:Ess\s{2}Nb)(*SKIP)(*FAIL)|\s+

规则解释:

  • (?:Ess\s{2}Nb):用非捕获组匹配Ess+两个空格+Nb的完整片段,避免捕获该片段本身
  • (*SKIP)(*FAIL):让匹配到的上述片段直接跳过,不参与后续捕获逻辑
  • |\s+:匹配所有剩余的连续空白字符,也就是你需要捕获的目标内容

测试示例(Python):

import re
text = "ED Ess  Nb  Ip"
matches = re.findall(r'(?:Ess\s{2}Nb)(*SKIP)(*FAIL)|\s+', text)
print(matches)  # 输出: [' ', '  ']

方案二:兼容ES2018+的JavaScript等环境

如果环境不支持(*SKIP)(*FAIL),可以用负向后断言组合排除目标空格:

\s+(?<!Ess\s(?=\sNb))

规则解释:

  • \s+:匹配连续空白字符
  • (?<!Ess\s(?=\sNb)):负向后断言,确保当前空白字符的前面不是Ess+一个空格(且该空格后紧跟着一个空格+Nb),以此精准排除Ess和Nb之间的两个空格

测试示例(JavaScript):

const text = "ED Ess  Nb  Ip";
const pattern = /\s+(?<!Ess\s(?=\sNb))/g;
const matches = text.match(pattern);
console.log(matches); // 输出: [' ', '  ']

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.19 22:15:35