@6字符边界
---字符位置匹配,不匹配字符,零宽符号
---^与字符串开始的地方匹配 在方括号外
---$与字符串结束的地方匹配
---\b 匹配一个单词边界,匹配:前面的字符和后面的字符不全是\w
@7模式
---大小写敏感和不敏感
---单行模式
---多行模式
@8选择符和分组
--- | 分支结构 左右两边表达式之间为或的关系,匹配左边或者右边
--- () 捕获组 1.被修饰匹配次数时,括号中的表达式可以作为整体被修饰2.取匹配结果时,括号中的
表达式匹配到的内容可以被单独得到3.每对括号会分配一个编号,从左至右开始从1编号
---(?:Expression) 一些表达式中,不得不使用(),但又不需要保存()式子中表达式匹配的内容,这是使用
非捕获组抵消()带来的副作用
@9反向引用(\nnn)
---每一对()会分配一个编号,使用()的捕获根据左括号顺序从1开始编号
---通过反向引用可以对分组已经捕获的字符串进行引用
@10预搜索(零宽断言,环视)
---只进行子表达式的匹配,匹配内容不计入最终的匹配结果,是零宽度
---这个位置应该符合某些条件判断当前未知的前后字符,是对位置的匹配
---(?=exp) 断言自身出现的位置的后面能匹配表达式exp
---(?<=exp) 断言自身出现的位置的前面能匹配表达式exp
---(?!exp) 断言此位置的后面不能匹配表达式exp
---(?>!exp) 断言此位置的前面不能匹配表达式exp
@11实战:
1.座机号码匹配 :0\d{2,3}-\d{7,8}
2.手机号码匹配:1[3458]\d{9}
3.座机手机都匹配 :(1[3458]\d{9})|(0\d{2,3}-\d{7,8})
4.邮箱匹配:[\w]+@[a-z0-9]+(\.[a-z]{2,3}){1,2}