正则表达式--断言

  密码的正则表达式,要求是密码8-16位,必须包含数字大小写字母以及特殊字符([email protected]#$%&*^.!)

  高人写的:$pwd_pattern = ‘/^(?=.*?[a-z])(?=.*?[A-Z])(?=.*?[\.\!\~\[email protected]#$%&*^])[a-zA-Z0-9\.\!\[email protected]#$%&*^]{8,16}$/‘;

  

  经过学习,分析如下:

  (?=.*?[a-z]) 断言,只匹配一个位置

  比如,你想匹配一个“人”字,但是你只想匹配中国人的人字,不想匹配法国人的人,就可以用: (?=中国)人

  (?=.*[a-z])\d+  匹配以“任意字符连着一个小写字母”开头的数字,只匹配数字

  (?=.*?[a-z])\d+  匹配以“任意一个字符连着一个小写字母”开头的数字,只匹配数字

  断言就是指明某个字符串前边或者后边,将会出现满足某种规律的字符串。

  /^[a-zA-Z0-9\.\!\[email protected]#$%&*^]{8,16}$/      12345678     qqqqqqqq  [email protected]#Wq都匹配   不满足要求

  /^(?=.*?[a-z])(?=.*?[A-Z])(?=.*?[\.\!\~\[email protected]#$%&*^])[a-zA-Z0-9\.\!\[email protected]#$%&*^]{8,16}$/     [email protected]#Wq匹配   12345678     qqqqqqqq 不匹配

  

时间: 2024-08-24 05:21:47

正则表达式--断言的相关文章

JavaScript正则表达式-断言

(?=reg_pattern):正前向断言 只有当字符串右侧出现匹配reg_pattern的字符时才匹配正则表达式. str = "img1.jpg,img2.jpg,img3.bmp"; reg = /(\w*)(?=\.gif)/; arr_m = str.match(reg);//arr_m = ["img1","img2"] (?!reg_pattern):负前向断言 只有当字符串右侧不出现匹配reg_pattern的字符串时才匹配正则表

正则表达式——断言补充

4.4 补充 4.4.1 环视的价值 ??环视有一个很重要的玉兔,就是避免编写正则表达式"牵一发动全身"的尴尬--既可以集中关注某个地方,添加全局性的限制,又不会干扰其他部分的匹配.有些时候,为进行全局性限制而真正匹配文本,会让情况变复杂. 4.4.2 环视与分组编号 ??环视结构也要用到括号,这种括号是否会影响到分组编号呢? ??前面说过,分组的编号只与捕获型号有关,而不受其他任何类型括号的影响.所以,环视结构虽然出现了括号,但并不影响分组.注:环视结 4.4.3 环视的支持程度 ?

python3的正则表达式(regex)

正则表达式提供了一种紧凑的表示法,可用于表示字符串的组合,一个单独的正则表达式可以表示无限数量的字符串.常用的5种用途:分析.搜索.搜索与替代.字符串的分割.验证. (一)正则表达式语言python中特殊字符有    \.^$?+*{}[]()|1.字符类速记^ 如果在字符类中第一个字符则表示否定:-   表示一个字符范围,如果作为字符类中的第一个字符,就表示一个字面意义上的连字符:. 可以匹配除换行符之外的任意字符,或带re.DOTALL标记的任意字符,或匹配字符类内部的字面意义的字符:\d

grep及正则表达式 含(含断言)

grep和正则表达式 1.grep:Global search REgular expression and Print out the file 作用:文本搜索工具,根据用户指定的模式对目标文件逐行进行匹配,打印匹配到的行 模式:由正则表达式字符及文本字符编写的过滤条件 格式: grep [options] pattern file[...] --color=auto 对匹配到的文本着色显示 -v 显示不能够被pattern匹配的行 -i 忽略file中文件字符的大小写 -n 显示匹配的行号

正则表达式的先行断言(lookahead)和后行断言(lookbehind)

正则表达式的先行断言和后行断言一共有4种形式: (?=pattern) 零宽正向先行断言(zero-width positive lookahead assertion) (?!pattern) 零宽负向先行断言(zero-width negative lookahead assertion) (?<=pattern) 零宽正向后行断言(zero-width positive lookbehind assertion) (?<!pattern) 零宽负向后行断言(zero-width nega

正则表达式分组()、断言(?&lt;:)详解

正则表达式中的断言,作为高级应用出现,倒不是因为它有多难,而是概念比较抽象,不容易理解而已,今天就让小菜通俗的讲解一下. 如果不用断言,以往用过的那些表达式,仅仅能获取到有规律的字符串,而不能获取无规律的字符串. 举个例子,比如html源码中有<title>xxx</title>标签,用以前的知识,我们只能确定源码中的<title>和</title>是固定不变的.因此,如果想获取页面标题(xxx),充其量只能写一个类似于这样的表达式:<title>

老男孩带你了解perl正则表达式中的零宽断言

老男孩IT教育小编为大家整理了perl正则表达式中的零宽断言的方法,希望能帮到大家 1.1 前言 本文只介绍perl语言正则表达式的零宽断言功能. 零宽断言实质:匹配文本里面的位置. 零宽断言叫zero-length assertions,也叫lookaround(这个更容易理解). 包括:lookahead(向前看,零宽度正预测先行断言),lookbehind(向后看,零宽度正回顾后发断言). 从左到右对文本进行匹配,判断是否符合exp表达式. 名字 表达式 如果子表达式成功则- positi

正则表达式的零宽断言

零宽断言,大多地方这样定义它,用于查找在某些内容(但并不包括这些内容)之前或之后的东西,也就是说它们像 \b ^ $ \< > 这样的锚定作用,用于指定一个位置,这个位置应该满足一定的条件(即断言),因此它们也被称为零宽断言.我的理解是在一个限定位置的字符串之前或之后进行匹配查找.所以零宽断言,执行过程分两种情况,如果是正向断言,应该是这样的,第一步,判断判断断言是否为真(即是否满足一定条件)第二步,如果满足条件,则进行下一步查找匹配.如果是反向断言,第一步还是按照正则表达式顺序去匹配.第二步

正则表达式之断言

零宽断言的意思是(匹配宽度为零,满足一定的条件/断言) 我也不知道这个词语是那个王八蛋发明的,简直是太拗口了. 零宽断言用于查找在某些内容(但并不包括这些内容)之前或之后的东西,也就是说它们像\b,^,$那样用于指定一个位置,这个位置应该满足一定的条件(即断言),因此它们也被称为零宽断言. 断言用来声明一个应该为真的事实.正则表达式中只有当断言为真时才会继续进行匹配. 其中零宽断言又分四种 1.先行断言   也叫零宽度正预测先行断言(?=表达式)          表示匹配表达式前面的位置 例如