我有以下字符串:
bla;bla;<span>bla</span>;bla;bla;hoblala;abla;blala;bla,bla,<span>bla</span>,bla,bla,hoblala,abla,blala,
我需要获得“bla”字样:
任何帮助?
编辑:
正则表达式我尝试过:(?!<)(?![a-z])bla
答案 0 :(得分:0)
这应该有效。
<强> REGEXP:强>
((?:\w+\;)+)(?=<span>)
<强> INPUT:强>
bla;bla;<span>bla</span>;bla;bla;hoblala;abla;blala;bla,bla,<span>bla</span>,bla,bla,hoblala,abla,blala,
<强>输出:强>
bla;bla;
JAVASCRIPT代码:
const regex = /((?:\w+\;)+)(?=<span>)/gm;
const str = `bla;bla;<span>bla</span>;bla;bla;hoblala;abla;blala;bla,bla,<span>bla</span>,bla,bla,hoblala,abla,blala,`;
let m;
while ((m = regex.exec(str)) !== null) {
// This is necessary to avoid infinite loops with zero-width matches
if (m.index === regex.lastIndex) {
regex.lastIndex++;
}
// The result can be accessed through the `m`-variable.
m.forEach((match, groupIndex) => {
console.log(`Found match, group ${groupIndex}: ${match}`);
});
}
&#13;
答案 1 :(得分:0)
(?!<span[^>]*?>)(\b(bla)\b)(?![^<]*?<\/span>)
就是我想出来的。
它不是一个非常易读的正则表达式,但它完成了这项工作。
我想我更愿意将其分解为两种不同的方法。一个使用Regex匹配整个bla
单词,然后使用HTML解析器删除HTML单元中包含的任何单词。