群组在稳定前缀后多次捕获

时间:2016-01-27 21:16:29

标签: javascript regex

是否可以创建一个正则表达式来检索与该类型的html输入匹配的所有捕获组:

<em>word1</em> <em>word2</em> <em>word3</em>
prefix: <em>word4</em> <em>word5</em>
<em>word6</em> <em>word7</em>

匹配

word4 word5

我尝试使用Lookahead和Lookbehind Zero-Length Assertions,但没有成功。

这是我的尝试

https://regex101.com/r/lA9xA3/2

但我确实知道如何在我的'前缀:'

之后让每个下一次出现的小组重复

非常感谢,

于连

1 个答案:

答案 0 :(得分:1)

您需要获取以前缀开头的行,然后在var re = /^prefix:((?: *<em>\w*\d*<\/em>)*) */gm; var str = 'prefix: <em>word1</em> <em>word2</em> <em>word3</em>\n<em>word4</em> <em>word5</em>\nprefix: <em>word6</em> <em>word7</em> <em>word8</em>'; var arr = []; while ((m = re.exec(str)) !== null) { var tmp = m[1].match(/[^<>]*(?=<\/em)/g); // Get matches inside EM if (tmp) { // If there are any tmp = tmp.filter(Boolean); // Remove empty array elements for (var i=0; i<tmp.length;i++) { arr.push(tmp[i]); // Add to resulting array } } } document.body.innerHTML = "<pre>" + JSON.stringify(arr, 0, 4) + "</pre>";标记内获取文本。

最好在两遍中完成,以免影响性能和可读性:

IMAGE_SUBSYSTEM_WINDOWS_GUI