猿问

负前瞻 RegEx 限制为确切的字符数

如何将负先行 RegEx 限制为确切的字符数?

比如这句话应该否定...

This car is not that fast!

虽然这个应该被允许......

The car you are about to see may not be that fast, but it's very beautiful!

正则表达式应匹配任何包含单词“car”的句子,但在以下 10 个字符中包含单词“not”的句子除外。第一句话就是这种情况,“车”和“不是”之间只有 4 个字符。所以这句话应该被否定。

然而,第二句话在“car”和“not”之间有超过 10 个字符,因此它应该通过 RegEx 否定断言。

基本上,我正在寻找的是一个限制为一定数量字符的负前瞻 RegEx。


元芳怎么了
浏览 142回答 2
2回答

杨魅力

事实上,你可以使用负面的前瞻:.*?car(?!.{0,10}not).*如果此规则中的“car”和“not”应该是单独的词,而不仅仅是任何序列的子字符串,则添加适当的\b:.*?\bcar\b(?!.{0,10}\bnot\b).*

白衣非少年

否定前瞻断言,https://regex101.com/r/mD9JeR/11:.*?car(?![\w\s]{0,10}not).*看 \w\s 字符是否在 0-10 次之前没有。如果是这样,那么它将不匹配。积极的前瞻断言,就像一个 FYI - https://regex101.com/r/mD9JeR/12.*?car(?=[\w\s]{10,}not).*
随时随地看视频慕课网APP

相关分类

JavaScript
我要回答