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

时间:2019-03-29 13:20:56

标签: javascript regex regex-negation

我有一个字符串,其中包含某些序列“ SMP-未知字符数-4个字符”。除了正则表达式,我必须从字符串中选择所有内容。目前,我可以选择要排除的子字符串。

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

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

测试字符串:

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

1 个答案:

答案 0 :(得分: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替换运算符从字符串中删除不需要的部分:

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

或在javascript中

  result = p.replace(/SMP-\S+-\S{4}/ '')