是否可以创建一个正则表达式来检索与该类型的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
但我确实知道如何在我的'前缀:'
之后让每个下一次出现的小组重复非常感谢,
于连
答案 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