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

 更新时间: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正则练习器

    无殇写的javascript正则练习器,比较不错,最后生成替换参数,美中不足的就是替换无法使用,本人也试着修改因为替换参数过多而无法实现,希望会的朋友修正一下
    2007-06-06
  • 轻松掌握正则表达式findall函数详解

    轻松掌握正则表达式findall函数详解

    正则表达式(regular expression)描述了一种字符串匹配的模式(pattern),可以用来检查一个串是否含有某种子串、将匹配的子串替换或者从某个串中取出符合某个条件的子串等,这篇文章将带你掌握正则表达式中的findall函数
    2021-10-10
  • 学php正则!超基础简单例子

    学php正则!超基础简单例子

    我一直都觉得正则表达式只要在要用的时候翻一下百度就Ok了,然后今天写php的时候发现,原来我正则完全一点都不懂。
    2011-09-09
  • 用正则表达式匹配字符串中汉字及中文标点符号

    用正则表达式匹配字符串中汉字及中文标点符号

    正则表达式通常用于判断某一个字符串是否符合或满足某一种格式,下面这篇文章主要给大家介绍了关于如何使用正则表达式匹配字符串中汉字及中文标点符号的相关资料,需要的朋友可以参考下
    2022-07-07
  • 最新密码验证正则表达式

    最新密码验证正则表达式

    这篇文章主要为大家分享了最新密码验证正则表达式,密码形式可以根据开发需求进行设定,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2016-11-11
  • JavaScript正则表达式校验非零的正整数实例

    JavaScript正则表达式校验非零的正整数实例

    本文分享了JavaScript正则表达式(^[1-9]\d*$ 或 ^([1-9][0-9]*){1,3}$ 或 ^\+?[1-9][0-9]*$)校验非零的正整数实例代码,代码简单易懂,需要的朋友可以看下
    2016-12-12
  • 在ASP中用正则表达式对象来校验数据的合法性

    在ASP中用正则表达式对象来校验数据的合法性

    我们在制作网站的时候,需要对用户输入的数据进行验证,前端是辅助用户方便填写,后端才是真正的安全过滤,正则表达式对于一些数据校验都是比较常见的不只asp中需要,php也需要,这里脚本之家小白就为大家简单介绍一下
    2006-06-06
  • 关于preg_replace函数的问题讲解

    关于preg_replace函数的问题讲解

    关于preg_replace函数的问题讲解...
    2007-03-03
  • 还不会正则表达式?赶快看这篇!

    还不会正则表达式?赶快看这篇!

    大家都很多时候都会觉得正则表达式难记、难学、难用,但不可否认的是正则表达式是一项很重要的技能,所有我将学习和使用正则表达式时的关键点整理如下,供大家参考
    2019-06-06
  • PHP匹配多行的正则表达式分析

    PHP匹配多行的正则表达式分析

    PHP匹配多行的正则表达式分析,需要的朋友可以参考下,多用于采集替换等。
    2011-07-07

最新评论