zoukankan      html  css  js  c++  java
  • 正则表达式--断言

     

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

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

      

      经过学习,分析如下:

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

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

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

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

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

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

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

      

  • 相关阅读:
    内置函数详解
    关于内置函数
    ac自动机练习 HihoCoder 1036
    字典树Trie练习 HihoCoder 1014
    HDU 6170 Two String 动态规划
    NOJ 1190 约瑟夫问题 线段树OR树状数组
    NOJ 1186 灭蚊药水
    LightOJ 1085 树状数组+动态规划
    LightOJ 1066
    LightOJ 1080 树状数组
  • 原文地址:https://www.cnblogs.com/EnSnail/p/5833204.html
Copyright © 2011-2022 走看看