正则表达式x后直到空格

时间:2017-01-20 11:01:17

标签: javascript regex

选择xnum-539 classname random-word xnum-hello hi-239

我需要选择xnum-之后的所有内容,所以在这种情况下539hello

我尝试了很多事情,我所能做到的最好的是:

-(.*?)\s。 但是当我只想要破折号后的内容时,这包括破折号。 (ex -539

rnum-(.*?)\s占据了整个事物。

对于这两种解决方案,我不想手动切片。 如果这是重复的道歉,但我已尝试使用其他答案,而且我在正则表达式上很糟糕。

由于

1 个答案:

答案 0 :(得分:3)

注意你的正则表达式在匹配结束时实际上需要一个空格(\s),因此,停止正则表达式引擎以匹配字符串末尾的值。

您可以使用/xnum-(\S+)/g正则表达式访问所有匹配并访问第1组:

var s = "xnum-539 classname random xnum-hello";
var res=[],m;
var re = /xnum-(\S+)/g;
while ((m=re.exec(s)) !== null) {
  res.push(m[1]);
}
console.log(res);

模式详情

  • xnum- - 一系列文字字符xnum-
  • (\S+) - 捕获ID为1的组,其中包含一个或多个非空白符号。