MATLAB正则表达式⑤:先行断言与后行断言
- 原创
- |
- 浏览:298
- |
- 更新:
- |
- 标签:MATLAB
根据MATLAB介绍正则表达式中的断言(Assertion)。先行断言和后行断言统称Lookaround Assertion。
方法/步骤
通过后行断言expr(?=test),expr后面匹配test成功的情况下,认为expr的匹配有效。
匹配结果只包含expr部分。如图匹配以ing结尾的单词的本体部分。
通过后行断言expr(?!test),expr后面无法匹配到test的情况下,认为expr的匹配有效。
匹配结果只包含expr部分,如图,x(?!\d\d)匹配后面不跟着两位数字的小写字母x。x86和x64中的x不会被匹配,xcode中的x符合要求。
通过先行断言(?<=test)expr,当expr的前面能匹配到test的情况下,认为expr的匹配有效。
匹配结果只包含expr部分。如图,匹配以're'开头的单词的剩余部分。
通过先行断言(?<!test)expr,当expr的前面无法匹配到test的情况下,认为expr的匹配有效。
匹配结果只包含expr部分。如图,通过先行断言和后行断言,匹配前后都无数字字符的单个数字。
断言(assertion)也可以与定位点(anchor)配合使用,如图,通过定位点'\<'定位单词的开始,通过断言(?!\d)过滤以数字开头的单词,\w+匹配到的就类似一些程序语言中的合法变量名。
先行断言后面不一定要有expr,后行断言前面也不一定要有expr,先行和后行重点在于测试匹配的方向。先行断言向前测试,后行断言向后测试。
如图,通过(?=b)w{4}(?<=y)匹配四个连续单词字符,限制其中第一个是b,最后一个是y。
END- 相关内容非法爬取自百度经验
经验内容仅供参考,如果您需解决具体问题(尤其法律、医学等领域),建议您详细咨询相关领域专业人士。
作者声明:本篇经验系本人依照真实经历原创,未经许可,谢绝转载。
展开阅读全部











