选择xnum-539 classname random-word xnum-hello hi-239
。
我需要选择xnum-
之后的所有内容,所以在这种情况下539
和hello
。
我尝试了很多事情,我所能做到的最好的是:
-(.*?)\s
。
但是当我只想要破折号后的内容时,这包括破折号。 (ex -539
)
或
rnum-(.*?)\s
占据了整个事物。
对于这两种解决方案,我不想手动切片。 如果这是重复的道歉,但我已尝试使用其他答案,而且我在正则表达式上很糟糕。
由于
答案 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的组,其中包含一个或多个非空白符号。