除非注明,文章均为 战战如疯 原创,转载请保留链接: http://www./cat4/467.html,VBA交流群273624828。 继续来看下正则表达式的基础符号。
上面这几个符号都是用来规定匹配次数的,我们通过这个字条串“学A挖AA掘AAA机AAAA哪AAAAA家强?”来说明问题。
我们原字符串中有1到5个A不等,“A{2}”代表匹配两个A,那第一个A肯定不能匹配,挖和掘之间的2个A可以匹配,掘和机之间有3个,这时就会匹配前2个A,第3个A不能匹配,机和哪之间4个A,则前2个A一组匹配,后2个A一组匹配,哪和家之间5个A,亦是2个一组的匹配,剩下最后单个A不能匹配,把所有匹配上的都替换成B,所以最后留下的结果就是“'学A挖B掘BA机BB哪BBA家强?”。 "A{2,}"代表至少匹配两个A,那第1个A不能匹配,后面2个、3个、4个和5个A都可以匹配上,所以最后结果是“学A挖B掘B机B哪B家强?” "A{2,4}"代表至少匹配2个A,最多匹配4个A,所以可以匹配挖和掘之间2个A,掘和机之间3个A,哪和家之间只能匹配前4个,最后结果是“ 学A挖B掘B机B哪BA家强?”。 看了上面的演示也就知道了正则表达式不会对同一个字符重复匹配,比如一个字符串是AAAAA,如果你要匹配其中两个A,即A{2},那不会说匹配前2个A,然后第2个和第3个A又匹配,第3个A和第4个A再匹配的情况,前2个A匹配之后就不再匹配,第3个A和第4个A匹配之后也不再参与下面的匹配,把匹配结果换成B就是“BBA”。 |
|