正则表达式-初阶-非获取匹配

非获取匹配

前言

本章节主要介绍,正则表达式中关于非获取匹配的详细介绍及使用方法
与上一篇的获取匹配不同的是,非获取匹配不会形成组,却保留了优先级运算的能力

变量定义

  • pattern: 任意长度的正则表达式

一般模式

  • (?:pattern): 匹配指定内容,不形成组,一般和或运算搭配使用
"com(?:puter|pare)": 可以匹配"computer""compare",  但不能匹配"complete"
注意: 不可在"[]"中使用, 否则将会解释为单个字符"(""?"":"")"
注意: 如果待匹配内容是"computer", "com(?:puter|pare)"的匹配结果是"computer", "com(puter|pare)"的匹配结果是"puter"

预查模式

所谓预查,即提前判断某区域是否为某指定内容,但不消耗字符内容,从预查位置开始下次搜索

  • (?=pattern): 正向肯定预查,一般用于后缀的肯定判断
"app(?=le|lication)": 当待匹配内容为"apple""application", 可以匹配出"app"; 当待匹配内容为"appear", 则无匹配结果
注意: 不可在"[]"中使用, 否则将会解释为单个字符"(""?""="")"
  • (?!pattern): 正向否定预查,一般用于后缀的否定判断
"app(?!le|lication)": 当待匹配内容为"apple""application", 无匹配结果; 当待匹配内容为"appear", 可以匹配出"app"
注意: 不可在"[]"中使用, 否则将会解释为单个字符"(""?""!"")"
  • (?<=pattern): 反向肯定预查,一般用于前缀的肯定判断
"(?<=w|t)here": 当待匹配内容为"where""there", 可以匹配出"here"; 当待匹配内容为"inhere", 则无匹配结果
注意: 不可在"[]"中使用, 否则将会解释为单个字符"(""?""<""="")"
注意: 在某些编程语言中, 需要保证单词长度一致. 例如"(?<=pp|tt)"是可行的, "(?<=pp|ttt)"是不可行的
  • (?<!pattern): 反向否定预查,一般用于前缀的否定判断
"(?<!w|t)here": 当待匹配内容为"where""there", 无匹配结果; 当待匹配内容为"inhere", 可以匹配出"here"
注意: 不可在"[]"中使用, 否则将会解释为单个字符"(""?""<""!"")"
注意: 在某些编程语言中, 需要保证单词长度一致. 例如"(?<!pp|tt)"是可行的, "(?<!pp|ttt)"是不可行的

文章系列

题外话

原创文章真心不容易,希望大家一键三连哦✧(≖ ◡ ≖✿)~。

参考链接

百度百科: 正则表达式

  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值