字符串的正则表达式解决方案
Regex solution for string
我有以下字符串:
bla;bla;<span>bla</span>;bla;bla;hoblala;abla;blala;bla,bla,<span>bla</span>,bla,bla,hoblala,abla,blala,
我需要得到 "bla" 个单词,它们是:
- 不在跨度内
- 不在单词内(例如,"hoblala"、"abla"、"blala"...不应选择)
有什么帮助吗?
编辑:
我试过的正则表达式:(?!<)(?![a-z])bla
这应该有效。
REGEXP:
((?:\w+\;)+)(?=<span>)
输入:
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}`);
});
}
(?!<span[^>]*?>)(\b(bla)\b)(?![^<]*?<\/span>)
是我想出来的。
它不是一个可读性很好的正则表达式,但它可以完成工作。
我想我更愿意将其分解为两种不同的方法。一个使用正则表达式匹配整个 bla
单词,然后第二个使用 HTML 解析器删除 HTML 元素中包含的任何内容。
我有以下字符串:
bla;bla;<span>bla</span>;bla;bla;hoblala;abla;blala;bla,bla,<span>bla</span>,bla,bla,hoblala,abla,blala,
我需要得到 "bla" 个单词,它们是:
- 不在跨度内
- 不在单词内(例如,"hoblala"、"abla"、"blala"...不应选择)
有什么帮助吗?
编辑:
我试过的正则表达式:(?!<)(?![a-z])bla
这应该有效。
REGEXP:
((?:\w+\;)+)(?=<span>)
输入:
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}`);
});
}
(?!<span[^>]*?>)(\b(bla)\b)(?![^<]*?<\/span>)
是我想出来的。
它不是一个可读性很好的正则表达式,但它可以完成工作。
我想我更愿意将其分解为两种不同的方法。一个使用正则表达式匹配整个 bla
单词,然后第二个使用 HTML 解析器删除 HTML 元素中包含的任何内容。