前定位与后定位

Example:
Text
abcPatrickdsddd
 
RegEx abc(?=Patrick)     Result abc
RegEx  (?=Patrick)abc      Result null
RegEx  abc (?<=Patrick)      Result null
RegEx  (?<=Patrick)abc      Result null
RegEx (?=Patrick)Pat     Result Pat
RegEx  Pat(?=Patrick)      Result null
RegEx (?<=Patrick)Pat     Result null
RegEx  Pat(?<=Patrick)      Result null
RegEx  trick(?<=Patrick)      Result trick
RegEx  abc(?=Patrick)      Result abc
 
Analysis
abc(?=Patrick)  ——首先找到 Patrick在文本中的前序位置(也就是P所在的位置3)。然后核对前面的文本是否匹配abc (第0为是a,第1位是b 第2位是 c) 。
(?=Patrick)Pat   ——首先找到 Patrick在文本中的前序位置(也就是P所在的位置3)。然后核对后面面的文本是否匹配Pat (第3为是P,第4位是a 第5位是 t) 。
 
trick(?<=Patrick) ——首先找到 Patrick在文本中的后序位置(也就是k所在的位置9)。然后核对前面的文本是否匹配trick (第5为是t,第6位是r .....第9位是k) 。
(?<=Patrick)ds ——首先找到 Patrick在文本中的后序位置(也就是k所在的位置9)。然后核对后面的文本是否匹配ds (第10为是d,第11位是s) 。
 
思考:
trick(?<=Patrick)ds  返回什么呢? 返回trickds 。所以 (?<=Patrick)就是一个定位作用
 
 
 
说明:
Lookaround Operations

Class

Description

(?=)

Positive lookahead

(?!)

Negative lookahead

(?<=)

Positive lookbehind

(?<!)

Negative lookbehind

(?=)  包含该位置的前序匹配

(?!)  不包含该位置的前序匹配

(?<=) 包含该位置的后续匹配

(?<!) 不包含该位置的后续匹配

 

 
 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值