正则表达式忽略分组顺序匹配(前瞻、后顾、负前瞻、负后顾的应用)

前瞻: ^ab(?=cd)$   匹配后面带有cd的ab,如果提取出来只有ab

例:  abcd-匹配   abef-不匹配

后顾: ^(?<=ab)cd$  匹配前面带有ab的cd,如果提取出来只有cd

例: abcd-匹配     efcd-不匹配

负前瞻: ^ab(?!cd)$  匹配后面不带cd的ab

例: abcd-不匹配   abef-匹配

负后顾: ^(?<!ab)cd$  匹配前面不带ab的cd

例: abcd-不匹配   efcd-匹配

 

应用


 

理解: "[0-9a-zA-Z]+"这部分很好理解,只匹配字母和数字,"(?!\d+$)" 这部分可以理解为不以纯数字结尾, 例如"394293"就违反了这一规则, 且"(?![a-zA-Z]+$)"表示不以纯字母结尾,

例如AbcD就违反了这一规则

 

posted @ 2019-10-08 18:27  xiaxiaosheng  阅读(1752)  评论(0编辑  收藏  举报