为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

元芳怎么了 2022-12-22 13:08:42
如何将负先行 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。
查看完整描述

2 回答

?
杨魅力

TA贡献1811条经验 获得超6个赞

事实上,你可以使用负面的前瞻:

.*?car(?!.{0,10}not).*

如果此规则中的“car”和“not”应该是单独的词,而不仅仅是任何序列的子字符串,则添加适当的\b

.*?\bcar\b(?!.{0,10}\bnot\b).*


查看完整回答
反对 回复 2022-12-22
?
白衣非少年

TA贡献1155条经验 获得超0个赞

否定前瞻断言,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).*


查看完整回答
反对 回复 2022-12-22
  • 2 回答
  • 0 关注
  • 141 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号