从正则表达式中删除子正则表达式查询

问题描述 投票:1回答:1

我有一个字符串,其中包含某些序列“SMP-unknown number of characters-4 characters”。除了正则表达式之外,我必须从字符串中选择所有内容。目前我能够选择要排除的子串。

(SMP-([\S])+-[\S][\S][\S][\S])

我必须从字符串中选择除了提到的正则表达式之外的所有内容。

测试字符串:

"testing updated regex: SMP-werdgs-2903 testm"

javascript regex regex-negation
1个回答
0
投票

有两种方法可以满足您的要求:

1 /匹配前后的所有内容并对两个结果进行连接:

  ^(.*) SMP-([\S])+-[\S][\S][\S][\S] (.*)$

或者在javascript中

  matches = p.match(/^(.*)SMP-\S+-\S{4}(.*)$/);
  result = matches[1]+matches[2];
  // or matches[0] seem to work also

2 /使用regexp replace运算符从字符串中删除不需要的部分:

  s/SMP-([\S])+-[\S][\S][\S][\S]//$

或者在javascript中:

  result = p.replace(/SMP-\S+-\S{4}/ '')
© www.soinside.com 2019 - 2024. All rights reserved.