正则表达式忽略分组顺序匹配(前瞻、后顾、负前瞻、负后顾的应用)
前瞻: ^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就违反了这一规则