正则表达式进阶

正则表达式基础
零宽度断言

  • 先行断言用于判断所匹配的格式是否在另一个确定的格式之前,该确定的格式仅作为匹配的约束,并不包含在匹配结果中;
  • 后发断言用于用于判断所匹配的格式是否在另一个确定的格式之后,筛选条件为其前跟随着断言中定义的格式。
符号详细描述格式
?=正先行断言-存在(?=…)
?!负先行断言-排除(?!..)
?<=正后发断言-存在(?<=…)
?<!负后发断言-排除?<!..)

贪婪匹配与惰性匹配

  • 正则表达式默认采用贪婪匹配模式,即会匹配尽可能长的子串。使用 ? 将贪婪匹配模式转化为惰性匹配模式。

现在有这样一个字符串:[{“AAA”:“111”},{“BBB”:“222”},{“CCC”:“333”},{“ABC”:“444”},{“AAB”:“555”}]

// 正先行断言-存在  以A开头A结尾  三处匹配
A(?=A) 
// 负先行断言-排除  以A开头不以A结尾  三处匹配
A(?!A)
// 正后发断言-存在  匹配 B以AA开头  一处匹配
(?<=AA)(B)
// 负后发断言-排除  匹配 B不以AA开头  四处匹配
(?<!AA)(B)
// 找 A B C A A   以 {" 开头  第一个是惰性匹配  尽可能长
(?<=\{").+   #结果:AAA":"111"},{"BBB":"222"},{"CCC":"333"},{"ABC":"444"},{"AAB":"555"}]
(?<=\{").+?  #结果:A B C A A  加?为惰性匹配
// 要找 AAA BBB CCC ABC AAB  以 {" 开头 以  ": 结尾
// 1. (?<=\{") 以 {" 开头
// 2. (?=":) 以 ":结尾 
// 3. .+? 至少一个 并且是惰性匹配
(?<=\{").+?(?=":)
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值