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

 更新时间: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})

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

相关文章

  • 详解Python3中的正则表达式的基本用法

    详解Python3中的正则表达式的基本用法

    本文重点给大家介绍正则表达式的相关用法,正则表达式是处理字符串的强大的工具,它有自己特定的语法结构,有了它,实现字符串的检索、替换、匹配验证都不在话下
    2019-07-07
  • 正则表达式之 贪婪与非贪婪模式详解(概述)

    正则表达式之 贪婪与非贪婪模式详解(概述)

    网上找到的贪婪与非贪婪模式详解,看了这一段基本明白贪婪与非贪婪模式的构成条件
    2012-10-10
  • asp match正则函数使用Matchs实例

    asp match正则函数使用Matchs实例

    asp matchs函数提供了对正则表达式匹配的只读属性的访问。一直都用这个函数,没想到本站竟然没有这类文章,汗一个,最近我会多加一些这样的文章
    2008-08-08
  • 正则表达式简介及在C++11中的简单使用教程

    正则表达式简介及在C++11中的简单使用教程

    正则表达式(regular expression)是计算机科学中的一个概念,又称规则表达式,通常简写为regex、regexp、RE、regexps、regexes、regexen。接下来通过本文给大家介绍正则表达式简介及在C++11中的简单使用教程,一起通过本文学习吧
    2017-02-02
  • js正则表达式实现数字每隔四位用空格分隔代码

    js正则表达式实现数字每隔四位用空格分隔代码

    这篇文章主要介绍了js正则表达式实现数字每隔四位用空格分隔代码,需要的朋友可以参考下
    2016-12-12
  • 使用Linux正则表达式灵活搜索文件中的文本

    使用Linux正则表达式灵活搜索文件中的文本

    作为一个Linux管理员,您需要对文本文件进行处理。您可以使用不同的工具如grep、awk以及sed去查找包含特定文本串的文件。这里,我将介绍一种使用正则表达式,以灵活的方式,去搜索文件中的文本的方法。
    2015-10-10
  • js匹配网址url的正则表达式集合

    js匹配网址url的正则表达式集合

    今天在开发客户端url验证的时候,整理的代码,发现了一些不错的匹配url网址的正则表达式特整理一下,方便需要的朋友
    2016-10-10
  • 使用正则表达式实现网页爬虫的思路详解

    使用正则表达式实现网页爬虫的思路详解

    网页爬虫:就是一个程序用于在互联网中获取指定规则的数据。这篇文章主要介绍了使用正则表达式实现网页爬虫的思路详解,需要的朋友可以参考下
    2018-12-12
  • C# 正则表达式 使用介绍

    C# 正则表达式 使用介绍

    最近写爬虫时需要用到正则表达式,有段时间没有使用正则表达式现在渐渐感觉有些淡忘,现在使用还需要去查询一些资料
    2006-07-07
  • 匹配数字小数和逗号的正则表达式

    匹配数字小数和逗号的正则表达式

    这篇文章主要为大家介绍了匹配数字小数和逗号的正则表达式详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-10-10

最新评论