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

Posted xiaxiaosheng

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了正则表达式忽略分组顺序匹配(前瞻后顾负前瞻负后顾的应用)相关的知识,希望对你有一定的参考价值。

前瞻: ^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就违反了这一规则

 

以上是关于正则表达式忽略分组顺序匹配(前瞻后顾负前瞻负后顾的应用)的主要内容,如果未能解决你的问题,请参考以下文章

正则表达式?: ?! ?=

1.6前瞻后顾

Java 正则表达式:负前瞻

Prometheus(公制)使用逆正则表达式匹配/负前瞻重新标记配置

负前瞻正则表达式

正则表达式入门环视