匹配,除非它包含点

我怎么能匹配,除非它们包含一个点的所有单词的每一个字,像匹配,除非它包含点

我想 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

回到顶部