不苛求用技术术语规范表达,技术大神不要鄙视,可以无视。因为我也是小白,一开始也对断言摸不清头脑。什么正向环视,负向环视,一头雾水。言归正传!断言也叫环视,听上去就是意思是有假设和判断性质。
知道^和$吧?代表位置,行的开头和结尾,不占用空间,就是透明空气。干脆姑且先这样理解:
(?<=xx)和(?<!xx)相当于^。
(?=xx)和(?!xx)相当于$。
只是这里的^$是附带条件的。
是以紧挨括号的东东有啥条件要求,把括号理解为"位置"。带左箭头<的,表示位置左边,不带的表示位置的右边。如A(?<!\d).(?!\d)B。是修饰条件,也可以把断言通俗理解为修饰符。A和B也可以为空,或者是通配符如,.?
A(?<=xx)(?<!xx)是说它们左边的字符A具备啥条件,(?=xx)(?!xx)B,是说它们右边的字符B具备啥条件。
位置上讲一个是开头,一个是结尾,只是这个开头和结尾可以在字符串中间位置人为划定。但是仅仅是约束规则,不占用字符空间,也不匹配任何东西。所以不能在后面加上数量词,加上也无效。
也可以把<理解为←左箭头,没有左箭头的视为按照正则引擎向右判断的默认方向,指向右→。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。