断言
基本概念:
断言分为两种
零宽先行断言
- 正向先行断言 用exp2(?=exp1) 来校验出右边是 exp1 的 exp2
- 负向先行断言 用exp2(?!exp1) 来校验出右边不是 exp1 的 exp2
零宽负向断言
- 正向后行断言 用 (?<=exp1)exp2 来校验出左边是 exp1 的 exp2
- 负向后行断言 用 (?<!exp1)exp2 来校验出左边不是 exp1 的 exp2
详解:
何为 零宽 ?
在先行断言和后行断言中,它们只匹配某些位置,在匹配过程中,不占用字符,所以被称为"零宽"。所谓位置,是指字符串中(每行)第一个字符的左边、最后一个字符的右边以及相邻字符的中间(假设文字方向是头左尾右)。
图中,红色标出指针所有隐性位置,蓝色表示这里并不存在隐性位置
可以发现只有一行字符串的最尾不存在隐性位置。
断言的匹配过程:
先根据断言将指针移动到符合条件的隐性位置,然后开始匹配字符串。
红色笔迹,为指针指向的隐性位置
首先根据断言判断指针的位置。若为(?=exp) ,则正向断言会使指针指向右边为exp的隐性位置。
之后才会根据指针所在位置进行对应的匹配。
若为.(?=exp) 则会匹配指针位置的左侧的第一个字符。
只有i被匹配到了。
若为(?=exp). 则会匹配指针位置的右侧的第一个字符。
同理,则反向断言(?<=exp) 会使指针指向左边为exp的隐性位置。
若为.(?<=exp) 则会匹配指针位置的左侧的第一个字符。
若为(?<=exp). 则会匹配指针位置的右侧的第一个字符。







5 条评论
安顺妹子200块钱随叫随到怎么用a0gz.cn
qq上快餐400是不是真的a0hd.cn
寻找华纳圣淘沙公司开户代理(183-8890-9465薇-STS5099】
华纳圣淘沙官方合作开户渠道(183-8890-9465薇-STS5099】
华纳圣淘沙公司开户代理服务(183-8890-9465薇-STS5099】
华纳圣淘沙公司开户咨询热线(183-8890-9465薇-STS5099】
联系客服了解华纳圣淘沙开户
(183-8890-9465薇-STS5099】
华纳圣淘沙公司开户专属顾问
(183-8890-9465薇-STS5099】
华纳圣淘沙开户步骤详解(183-8890-9465—?薇-STS5099【6011643】
华纳圣淘沙公司开户流程全解析(183-8890-9465—?薇-STS5099【6011643】
华纳圣淘沙公司账户注册指南(183-8890-9465—?薇-STS5099【6011643】
新手如何开通华纳圣淘沙公司账户(183-8890-9465—?薇-STS5099【6011643】
华纳圣淘沙企业开户标准流程(183-8890-9465—?薇-STS5099【6011643】
华纳圣淘沙公司开户:从零到一(183-8890-9465—?薇-STS5099【6011643】
官方指南:华纳圣淘沙公司开户流程(183-8890-9465—?薇-STS5099【6011643】
华纳圣淘沙公司开户流程说明书(183-8890-9465—?薇-STS5099【6011643】
东方明珠客服开户联系方式【182-8836-2750—】?μ- cxs20250806
东方明珠客服电话联系方式【182-8836-2750—】?- cxs20250806】
东方明珠开户流程【182-8836-2750—】?薇- cxs20250806】
东方明珠客服怎么联系【182-8836-2750—】?薇- cxs20250806】