MATLAB正则表达式⑤:先行断言与后行断言

2025-05-25 22:16:30

1、通过后行断言expr(?=test),expr后面匹配test成功的情况下,认为expr的匹配有效。匹配结果只包含expr部分。如图匹配以ing结尾的单词的本体部分。

MATLAB正则表达式⑤:先行断言与后行断言

2、通过后行断言expr(?!test),expr后面无法版醋矣铛匹配到test的情况下,认为expr的匹配有效。匹配结果只包含expr部分,如图,x(?!\d\d)匹配后面不跟着两位数字的小佯鲅烫侬写字母x。x86和x64中的x不会被匹配,xcode中的x符合要求。

MATLAB正则表达式⑤:先行断言与后行断言

3、通过先行断言(?<=test)expr,当expr的前面能匹配到test的情况下,认为expr的匹配有效。匹配结果只包含expr部分。如图,匹配以're'开头的单词的剩余部分。

MATLAB正则表达式⑤:先行断言与后行断言

4、通过先行断言(?<!test)expr,当expr的前面无法匹配到test的情况下,认为expr的匹配有效。匹配结果只包含expr部分。如图,通过先行断言和后行断言,匹配前后都无数字字符的单个数字。

MATLAB正则表达式⑤:先行断言与后行断言

5、断言(assertion)也可以与定位点(anchor)配合使用,如图,通过定位点'\<'定位单词的开始,通过断言(?!\d)过滤以数字开头的单词,\w+匹配到的就类似一些程序语言中的合法变量名。

MATLAB正则表达式⑤:先行断言与后行断言

6、先行断言后面不一定要有expr,后行断言前面也不一定要有expr,先行和后行重点在于测试匹配的方向。先行断言向前测试,后行断言向后测试。如图,通过(?租涫疼迟=b)w{4}(?<=y)匹配四个连续单词字符,限制其中第一个是b,最后一个是y。

MATLAB正则表达式⑤:先行断言与后行断言
声明:本网站引用、摘录或转载内容仅供网站访问者交流或参考,不代表本站立场,如存在版权或非法内容,请联系站长删除,联系邮箱:site.kefu@qq.com。
猜你喜欢