美文网首页
正则表达式

正则表达式

作者: 低吟浅唱1990 | 来源:发表于2016-05-26 14:36 被阅读41次

    正则表达式

    基本规则

    <ol>
    <li>普通字符

    字母、数字、汉字、下划线以及都变章节没有特殊定义的标点符号,都是普通字符。表达式“c”,在匹配“abcde”是,匹配成功。</li>
    <li>简单的转义字符

    匹配特殊字符和转义字符是需要添加“\”。“^”匹配“^”。 表达式“$d”,在匹配“abc$de”时,匹配成功,匹配到的内容是“$d”,位子是开始于3,结束语5
    </li>
    <li>能够与多种字符匹配的表达式


    "\d":任意一个数字,0~9中任意一个

    "\D":匹配所有的非数字字符;

    "\w":任意一个字母、数字或下划线,也就是AZ、az、0~9和_中任意一个;

    "\W":用于匹配所有"\w"不匹配的字符

    "\s":包括空格、制表符、换页符等空白字符之中的任意一个

    "\S":用于匹配除单个空格符之外的所有字符

    ".":小数点可以匹配除了换行符以外的任意字符
    </li>
    <li>
    自定义能够匹配多种字符的表达式

    [ ]包含一系列字符,能够匹配其中任意一个字符。[^]包含一系列字符,能够匹配其中字符之外的任意一个字符。只能匹配其中一个
    不是多个

    "[ab5@]":能够匹配a、b或5、@。
    "[^abc]":能够匹配a、b、c之外的任意一个字符
    "[f-k]":匹配f-k之间的任意一个字母
    "[^A-F0-3]":匹配A-F、0-3之外的任意一个字符
    </li>
    <li>
    修饰匹配次数的特殊符号

    使用方法:“次数修饰”放在“被修饰的表达式”后边

    "{n}":表达式重复n次。比如:"\w{2}":相当于"\w\w","a{5}"相当于"aaaaa"。

    "{m,n}":表达式至少重复m次,最多重复n次."ba{1,3}"相当于"ba","baba","bababa"

    "{m,}":表达式至少匹配m次
    "?":匹配表达式0次或者1次,相当于{0,1},比如:"a[cd]?"可以匹配"a","ac","ad"

    "+":表达式至少出现1次,相当于{1,}。"a+b"可以匹配"ab","aab"等
    "*":表达式不出现或者出现任意次数。
    </li>
    <li>其他代表抽象意义的特殊符号

    "^"字符串开始的地方匹配,不匹配任何字符
    "$"与字符串结束的地方匹配,不匹配任何字符
    "\b"匹配一个单词边界。也就是单词和空格之间的位置,不匹配任何字符。
    "\B"匹配非单词边界。即左右两边都是"\w"范围或者左右两边都不是
    "|"表示左右两边表达式之间的“或”关系,匹配左边或者右边
    "()"括号中的表达式可以作为整体被修饰。

    例如:

    "^aaa"在匹配"xxx aaa xxx"是失败的。"aaa"不在字符串开始的位置。匹配"aaaxxxxx"成功
    </li>
    </ol>

    一些高级规则

    <ol>
    <li>匹配次数中的贪婪与非贪婪

    匹配不定次数的表达式在匹配过程中,总是尽可能多的匹配

    例如在匹配文本"dxxxdxxxd"时,"(d)(\w+)"其中"\w+"将匹配第一个"d"之后的所有字符

    "(d)(\w+)(d)"其中"\w+"匹配"xxxdxxx"

    如果在修饰匹配次数的特殊符号后再加上一个"?",则使匹配不定次数的表达式尽可能少的匹配,是可匹配可不匹配的表达式,尽量不匹配
    </li>
    <li>反向引用

    表达式在匹配是,表达式引擎会将小括号"()"包含的表达式所匹配到的字符串记录下来。在获取匹配结果的时候,小括号包含的表达式
    所匹配的字符串可以单独获取。引用方法""再加上一个数字。"\1"表示引用第1对括号内匹配到的字符串

    例如:“('|")(.*?)(\1)” 在匹配“'hello',"World"”是匹配成功。匹配到的第一个内容是“'Hello'”
    </li>
    </ol>

    正则表达式举例

    <pre>
    1.校验密码强度
    密码的强度必须是包含大小写字母和数字的组合,不能使用特殊字符,长度在8-10之间
    ^(?=.\d)(?=.[a-z])(?=.*[A-Z]).{8,10}$
    2.校验中文
    ^[\u4e00-\u9fa5]{0,}$

    1. 由数字、26个英文字母或下划线组成的字符串
      ^\w+$
      4.校验E-Mail地址
      [\w!#$%&'+/=?^_{|}~-]+(?:\.[\w!#$%&'*+/=?^_{|}~-]+)@(?:\w?.)+\w?
      5.校验身份证
      ^(\d{6})(\d{4})(\d{2})(\d{2})(\d{3})([0-9]|X)$
      6.“yyyy-mm-dd“ 格式的日期校验
      ([0-9]{3}[1-9]|[0-9]{2}[1-9][0-9]{1}|[0-9]{1}[1-9][0-9]{2}|[1-9][0-9]{3})-(((0[13578]|1[02])-(0[1-9]|[12][0-9]|3[01]))|((0[469]|11)-(0[1-9]|[12][0-9]|30))|(02-(0[1-9]|[1][0-9]|2[0-8])))
      7.校验金额
      ^[0-9]+(.[0-9]{2})?$
      </pre>

    相关文章

      网友评论

          本文标题:正则表达式

          本文链接:https://www.haomeiwen.com/subject/hmfxdttx.html