4.1.4 不包含验证

本文介绍了使用正则表达式进行特定验证的方法,包括验证英文单词中是否不含指定字母及字母后的限定条件。通过实例展示了如何构造正则表达式来完成这类验证任务。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

  不包含验证其实是一种否定验证。在此,它指验证英文单词中不存在指定的字母或者字符串。如验证英文单词中不存在字母A、验证英文单词中字母A之后不能为字母B等。

注意:本小节中介绍的英文单词由大写英文字母构成,不考虑小写英文字母。

  1.不包含指定字母的验证

  在此,不妨设被指定的不包含的字母为A。以下正则表达式都能够验证不包含字母A的任意英文单词。

/b[B-Z]+/b                                                                     (29)

/b[B-Z]{1,}/b                                                                    (30)

  若被指定的不包含的字母为H。以下正则表达式都能够验证不包含字母H的任意英文单词。

/b[A-GI-Z]+/b                                                                   (31)

/b[A-GI-Z]{1,}/b                                                        (32)

  不包含指定字母的验证实际上从由字母表(AZ)组成的字符类中排除被指定的不包含的字母。如果被指定的不包含的字母为CGI,那么排除字母CGI的字符类为“[A-BD-FHJ-Z]”。因此,以下正则表达式都能够验证不包含字母CGI的任意英文单词。

/b[A-BD-FHJ-Z]+/b                                                             (33)

/b[A-BD-FHJ-Z]{1,}/b                                                             (34)

  2.字母A之后不能为字母B类型的英文单词验证

  该类型的验证也是一种否定验证,它是指验证英文单词中的某一个字母之后不能为另外一个指定的字母。在此,不妨设字母B之后不能为字母P。以下正则表达式都能够简单验证字母B之后不能为字母P的任意英文单词。

/b[A-Z]*B[^P][A-Z]*/b                                                       (35)

/b[A-Z]{0,}B[^P][A-Z]{0,}/b                                           (36)

  正则表达式(35)解释:

      /b匹配英文单词的边界,即英文单词的开始位置或结束位置。

      [A-Z]*可以匹配空字符串,或者匹配最小长度为1的、由大写英文字母组成的字符串。

      B匹配字母B

      [^P]匹配除字母P之外的任意字符。

  使用工具Regex Tester分别测试正则表达式(35)和(36),结果分别如图4.74.8所示。

 

                

 

 

   

       

 

 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值