断言(断言),正则表达式的概念是很难理解的,它通常是指一种测试电流匹配
位置的
目标字符串但本试验不占用目标字符串,不在当前匹配位置目标字符串移动
模式。可以看到
详细的讨论并分析了正则表达式匹配分析过程(正则表达式匹配原则),指的是零宽度与多元的特点,但只有匹配的特殊位置。它们可以被理解为断言。
断言元字符
常见的断言元字符: B,B, ,Z,Z,^,他们只代表一个特殊的位置,每一个都具有一个字符串AB,和乐队的位置表示为0a1b2。
元字符
含义(如上面的位置字符串所示)
^
首先,第一个字符串指示0个位置。
美元
在字符串的末尾,尾部位置为2。
◎B
词的分界线可以表述为:0位置
◎B
可以表示1位置的非词边界。
◎
在年初的目标(
独立的多行模式)代表的位置0
◎Z
最后的目标或终点的线端(独立的多行模式)代表的位置2
◎Z
最终目标的(在MULTILINE模式独立)代表的位置2
◎G
目标中的第一个匹配位置
a、z、z、g很少使用。
这些断言的测试是基于当前位置的测试,断言也
支持更复杂的测试
条件。它包括第一(向前)(预测先行断言)并
维护(对)(后向断言),这些断言断言不匹配的判断条件,记录的匹配结果不匹配的字符。
第一个断言,肯定断言,向前游(预测先行断言)
第一个断言
经常表示(=模式),从当前匹配位置开始,测试是否匹配字符串,以及(或模式)两种格式。让我们举个例子。来源:abc100字符串,正则表达式是:
/ { A-Z } +(= D +) /,我们分析以下过程如下:
首先,
控制是通过正则表达式字符a-z } { +,相匹配的字符:ABC,和位置相匹配,从0到3。检验/ D +
设置从这个位置。匹配字符100和回形。所以正则表达式来断言返回的字符串匹配的ABC。
(!模式)是一个积极的比赛,当没有匹配成功的背后,它会返回true。以下是
系统源字符串:abc100,试验结果如下:
背线的论断,反断言,反巡逻(lookbehind说法)
常用的表达式是:(<模式)或< <!模式)格式。在正则表达式中,没有一个固定长度的量词,并有可能成为一个死循环。
错误匹配。这表明匹配的字符将出现在当前位置的左侧,然后返回true,和后来的比赛是正常的。因为如果它出现在左边的
默认的位置从0开始,和比赛失败。一般来说,下面的正则表达式的开始比赛,然后原路返回到匹配是匹配的。让我们看看以下例子:源字符串:abc100 + =,正则表达式是:(<= W W)+匹配过程如下:
首先,权利由正则表达式字符 / W /得到了控制,匹配的字符:abc100,位置匹配0、和匹配匹配6个字符。左- W比赛未能
检测到从位置0。所以 / w+ /开始匹配字符B bc100,这是基于字符的左侧的测试,和反向的断言是
正确的。所以匹配的字符串bc100,(<!模式,就是没有一场比赛是成功的,其他一切
都是一样的!
结语:我们
发现,
搜索的特征是从左到右,一般的向前断言放在正则表达式后面,反向断言放在匹配正则表达式之前,但是它也可以放在前面或后面。这里没有更多的例子。欢迎交流讨论!