正则表达式学习笔记3
5.子表达式
符号一:( )
改变符号优先级(整体)
例如文本:abc abcabc abcabcabc
输入:(abc){2,}
结果:abcabc abcabcabc
符号二:|(或运算符)
选择两者中的任意一个
例如文本:123 234 345 567
输入:(1|2)\d{2}
结果:123 234
6.回溯引用
当匹配与前面某个子表达式相同的字符时可以使用
用法:\数字(数字代表第几个子表达式)
例如使用回溯引用文本:1a1 2a2 3a3 4a5 6a7
输入:([1-7])a\1
结果:1a1 2a2 3a3
例如不使用回溯引用文本:1a1 2a2 3a3 4a5 6a7
输入:[1-7]a[1-7]
结果:1a1 2a2 3a3 4a5 6a7
当子表达式很多事我们可以为其取名(增强可读性,减少维护成本)(有些不支持)
例如文本:1a1 2a2 3a3 4a5 6a7
输入:(?<first>[1-7])a\k<first>
结果:1a1 2a2 3a3
7.前后查找
符号一:(?<=特征)
向后查找
例如文本:aaaa:bbbb
输入:(?<=:).*
结果:bbbb
符号二:(?=特征)
向前查找
例如文本:aaaa:bbbb
输入:.*(?=:)
结果:aaaa
学习教程来源:BV1xW4y1X7Es