|
每个学习正则表达式的人,在刚开始入门的时候,就会被告知:VBScript.RegExp正则对象不支持“后发零宽断言”(也有的称之为“逆序环视”)的表达式。
虽然VBScript.RegExp正则对象不包含这样一个重要的特性,但是,它仍然在Jscript等编程语言中长期使用。由此,我们可以想象到,使用VBScript.RegExp正则对象,应当也是有办法可以解决“后发零宽断言”的问题。
因此,我经过大量实验,总结出了一种让VBScript.RegExp正则对象突破“后发零宽断言”的方法
这种方法,我称为“优先匹配排除法”,主要实现方式又分有两种:第1种、用"|"运算符来界定优先匹配的表达式子项;第2种、用懒惰匹配和贪婪匹配两者结合来界定优先匹配的表达式子项。
当然,具体使用哪一种,需要视具体的问题来分析而定。只要方法得当,可以应对几乎所有通常需要用“后发零宽断言”的表达式才能完成的匹配。
之所以只是说“几乎”,是因为我虽然成功地用这种方法做到了很多通常需要以“后发零宽断言”表达式来完成的匹配,但我不能完全排除有无法用它解决的“后发零宽断言”匹配要求的问题存在。
下面,就以一个具体的例子,由简入繁地逐步展示这种方法。
附件:
正则后发零宽断言.rar
(23.88 KB, 下载次数: 201)
|
评分
-
8
查看全部评分
-
|