我有这个示例文本,它是从html元素上的类名中检索的:

rich-message err-test1 erroractive
rich-message err-test2 erroractive
rich-message erroractive err-test1
err-test2 rich-message erroractive

我正在尝试匹配“test1”/“test2”每个例子中的数据。我目前正在使用以下正则表达式,它与“err-test1”匹配。单词的类型。我无法弄清楚如何将它限制在连字符( - )之后的数据。

/err-(\S*)/ig

头撞在这堵墙上伤害了。

有帮助吗?

解决方案

从我正在阅读的内容来看,您的代码已经有效了。

Regex.exec()会在成功时返回一系列结果。

数组中的第一个元素(索引0)返回整个字符串,之后所有()包含的元素都被推送到此数组中。

var string = 'rich-message err-test1 erroractive';
var regex = new RegExp('err-(\S*)', 'ig');
var result = regex.exec(string);

alert(result[0]) --> returns err-test1
alert(result[1]) --> returns test1

其他提示

你可以尝试'错误 - ([^ \ n \ r] *)' - 但你确定它是问题的正则表达式吗?您是否正在使用整个结果,而不仅仅是第一次捕获?

- 之后的东西应该在结果数组中。第一项是所有匹配的文本(例如“err-test1”),下一项是来自捕获括号的匹配(例如“test1”)。

myregex = /err-(\S*)/ig;
mymatch = myregex.exec("data with matches in it");
testnum = mymatch[1];

这是参考网站

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top