正则表达式中的大多数结构匹配的文本会出现在匹配的结果中,但是有时候不但关心目标文本的匹配,
还要判断目标文本左右两侧的文本是否符合要求,这种要求的正则里叫做断言。
常见的断言有三类:单词边界、行的起始、结束的位置、环视。
单词边界:正则记着:\b,它匹配“单词边界”的位置。
使用情况:
\bword\b \bword word\b
aword success
awords
words success
word success success success
\B是非单词边界。
行起始、结束位置在正则表达式中,这类匹配位置的元素叫做锚点,用来定位的,
常用的锚点还有^和$,,分别匹配字符串的开始和结束的位置,如果匹配模式是多行的时候,
他们还可以匹配每一行的开始和结束位置。使用表达式:(?m)^...$
所以在多行模式时,匹配整段文本的开始和结束位置需要其他的方式,他们是\A和\Z
环视:之前介绍边界匹配,它是完成这样的判断,在某个位置向左向右看,必须出现和必须不出现某些字符,这种功能在正则里面叫做环视。
正则使用:
(?!...) 是指当前位置之后,不容许出现能匹配的字符
(?<!...) 是指当前位置之前,不容许出现能匹配的字符
(?=...) 是指当前位置之后,容许出现能匹配的字符
(?<=...) 是指当前位置之前,容许出现能匹配的字符
在正则中还可以选择匹配模式,一般常见的匹配模式:不分大小写模式、单行模式、多行模式、注释模式
使用:
不分大小写模式(?i)
单行模式(?s)
多行模式(?m)
注释模式(?x)