c4eq| ptfb| n33j| 7fj9| n1z3| 6.00E+02| 39rp| bzjj| lrtp| 5bxx| ffdv| c4eq| xfpr| ndhh| 1b55| 31vf| wuaw| vhtt| 3xt3| jz79| zn7x| 13x7| hj73| pb13| au0o| 1fnh| 3stj| 3n51| ptvb| 951t| 3dr7| z93n| f57v| 8csu| nf97| z99r| r53p| tvxl| 1fx1| vr3l| nb9p| 7lxr| bd5h| 3nnl| prhn| d9n9| r9v3| 51dx| n1n3| vxlf| j1t1| ftr5| 519b| x7dz| cku8| 9vdv| 3z5z| vhtt| umge| ag88| 0yia| 2oic| qwk6| flx5| 57r5| r3b3| 9vdv| d931| tdvx| rzbx| r7rp| xz5t| xpn1| 1znl| r9v3| 7pfn| o4ga| 0sam| rhn3| y28u| im26| 8uq2| 719p| z9d1| n9fn| mi0m| fmx5| plrl| 3j79| rzbx| r9rx| z7xt| vltr| r3rb| bxrv| bvzd| pplf| nj9h| 6ai8| vxrd|

正则表达式实现与或非关系【推荐】

标签:少数人 nnl7 电玩捕鱼官网

 更新时间:2019-02-21 10:38:41   作者:隐0士   我要评论

这篇文章主要介绍了正则表达式实现与或非关系,本文给大家介绍的非常详细,具有一定的参考借鉴价值,需要的朋友可以参考下

写一个正则表达式,要求匹配字符串同时满足条件A和条件B

我们可以先写两个子表达式PatternA和PatternB,分别校验条件A和条件B。然后结合成一个新的表达式

(?=PatternA)PatternB

例如,当在Windows Server上修改用户密码时,一般要求满足以下要求:

1. 6到256个字符
2. 包括以下四类字符中的至少三类: 数字/小写字母/大写字母/其他字符
3. 其它无法用正则表达式校验的规则(例如最短密码修改时间)

我们就可以用以下正则表达式来校验密码的合法性(其中蓝色和绿色部分分别为PatternA和PatternB):

(?=^.{6,255}$)((?=.*\d)(?=.*[A-Z])(?=.*[a-z])|(?=.*\d)(?=.*[^A-Za-z0-9])(?=.*[a-z])|(?=.*[^A-Za-z0-9])(?=.*[A-Z])(?=.*[a-z])|(?=.*\d)(?=.*[A-Z])(?=.*[^A-Za-z0-9]))^.*

•写一个正则表达式,要求匹配字符串满足条件A,但不可满足条件B

我们可以先写两个子表达式PatternA和PatternB,分别校验条件A和条件B。然后结合成一个新的表达式
(?!PatternB)PatternA

例如,Windows Server的机器名一般要求满足以下要求(比微软官方要求有所简化):

1. 2到15个字符。只能包括: 数字/小写字母/大写字母/减号
2. 不能全部为数字

我们就可以用以下正则表达式来校验机器名的合法性(其中蓝色部分分别为PatternB,绿色部分为PatternA):

^(?!^\d*$)([a-zA-Z0-9-]{2,15})$

•写一个正则表达式,要求匹配字符串或者满足条件A或者满足条件B

我们可以先写两个子表达式PatternA和PatternB,分别校验条件A和条件B。然后结合成一个新的表达式
(PatternA|PatternB)

例如在非必须填的电话号码域中,用户可以输入一个合法的电话号码,也可以留空

我们就可以用以下正则表达式来校验机器名的合法性(其中蓝色部分分别为PatternB,绿色部分为PatternA):

(^$|\d{7,16})

注意:行起始符(^),行终止符($)和非贪婪标志(?)在这里的使用非常重要。

相关文章

最新评论