匹配,除非它包含点
我怎么能匹配,除非它们包含一个点的所有单词的每一个字,像匹配,除非它包含点
我想 except.this 等类似的词语用点匹配一切都在他们
我试过\b(?!\w+\.\w+)\w+\b
但这没有奏效。
不管我如何使用\w+
,\\.
等解释仍然符合部分“忽略。我”点后面。它有一个简单的语法吗?只是逃避这一点似乎并不奏效。
回答:
我建议以下pattern:
(?:^|\s)(?:(?!\.)[\w'])+(?=\s|$|[.?!](?:\s|$))
JS /正则表达式测试:
const regex = /(?:^|\s)(?:(?!\.)[\w'])+(?=\s|$|[.?!](?:\s|$))/g; const str = `aaa blabla fasdfdsa ignoremenot.
bbb igno.reme ad
It's fine?`;
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.trim()}`);
});
}
有一个问题:你要修剪比赛,以消除不必要的空格,可以显示因为我们不能在JavaScript的正则表达式中使用lookbehind,如下所示:(?<=^|\s)(?:(?!\.)[\w'])+(?=\s|$|[.?!](?:\s|$))
以上是 匹配,除非它包含点 的全部内容, 来源链接: utcz.com/qa/258703.html