• 企业400电话
  • 微网小程序
  • AI电话机器人
  • 电商代运营
  • 全 部 栏 目

    企业400电话 网络优化推广 AI电话机器人 呼叫中心 网站建设 商标✡知产 微网小程序 电商运营 彩铃•短信 增值拓展业务
    正则表达式实现与或非关系【推荐】

    写一个正则表达式,要求匹配字符串同时满足条件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})

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

    您可能感兴趣的文章:
    • PHP 正则表达式效率 贪婪、非贪婪与回溯分析(推荐)
    • php正则表达式中贪婪与非贪婪介绍
    • PHP正则表达式之捕获组与非捕获组
    • PHP之正则表达式捕获组与非捕获组(详解)
    • 正则表达式之 贪婪与非贪婪模式详解(概述)
    • 小议正则表达式效率 贪婪、非贪婪与回溯
    • [正则表达式]贪婪模式与非贪婪模式
    上一篇:正则表达式grep用法详解
    下一篇:正则表达式实现添加、删除、替换三种功能
  • 相关文章
  • 

    © 2016-2020 巨人网络通讯 版权所有

    《增值电信业务经营许可证》 苏ICP备15040257号-8

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