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

 更新时间:2018年07月04日 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})

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

相关文章

  • JavaScript 正则表达式解析

    JavaScript 正则表达式解析

    正则表达式是一个描述字符模式的对象。
    2009-02-02
  • 详解java中的正则表达式

    详解java中的正则表达式

    这篇文章主要介绍了java中的正则表达式,判断目标字符串中是否 可能 含这个字符。本文通过示例代码给大家介绍的非常详细,需要的朋友参考下吧
    2018-01-01
  • 深入浅出正则表达式中的边界\b和\B

    深入浅出正则表达式中的边界\b和\B

    对于正则表达式的中\B和\b 有些地方会出现弄不懂的情况,所以查找资料学习了一番,下面这篇文章主要给大家介绍了关于正则表达式中边界\b和\B的相关资料,需要的朋友可以参考下
    2021-10-10
  • 15个常用的javaScript正则表达式(收藏)

    15个常用的javaScript正则表达式(收藏)

    本文是小编收集整理的15个常用的javascript正则表达式,非常不错,具有参考借鉴价值,需要的朋友参考下吧
    2017-05-05
  • JavaScript replace new RegExp使用介绍

    JavaScript replace new RegExp使用介绍

    这篇文章主要介绍了JavaScript replace new RegExp使用介绍,需要的朋友可以参考下
    2016-05-05
  • js正则表达式验证大全(收集)

    js正则表达式验证大全(收集)

    本篇文章给大家分享js正则表达式验证大全,平时收集的知识,比较全面,需要的朋友可以参考下
    2015-09-09
  • 又一不错的应用-正则来查找替换字符串

    又一不错的应用-正则来查找替换字符串

    又一不错的应用-正则来查找替换字符串...
    2007-08-08
  • 正则表达式 \w \d 的意义

    正则表达式 \w \d 的意义

    正则表达式是一种特殊的字符串模式,用于匹配一组字符串,就好比用模具做产品,而正则就是这个模具,定义一种规则去匹配符合规则的字符。这篇文章主要介绍了正则表达式 \w \d 的意义,需要的朋友可以参考下
    2017-07-07
  • javascipt 正则表达式英文版

    javascipt 正则表达式英文版

    javascript 正则 原语
    2010-02-02
  • 详解正则表达式 \v 元字符

    详解正则表达式 \v 元字符

    正则表达式是一种文本模式,包括普通字符(例如,a 到 z 之间的字母)和特殊字符(称为“元字符”)。模式描述在搜索文本时要匹配的一个或多个字符串。\v元字符可以匹配垂直制表符。下面给大家介绍正则表达式 \v 元字符,感兴趣的朋友一起看看吧
    2018-01-01

最新评论