zoukankan      html  css  js  c++  java
  • 正则

    一.基本语法

    原子:
    \d    匹配数字0-9

    \D    匹配非数字

    \w    匹配a-z0-9A-Z  只要满足是英文字母和数字

    \W    匹配任何非字母数字的, 比如汉子

    \s    匹配空白区域,包括制表符

    \S    匹配非空格区域

        
    元字符:
    /./    匹配任意字符,换行符除外, <!-- . --> 匹配一个注释 里面包含任意字符

    |      逻辑运算符" 或 ",如    /黄色网址|海洛因|冰毒|罂粟/ 


    原子表:
    []    匹配其中的任意一个字符,如    [汪张赵李金] 这里匹配的是 原子表里面,汪 , 张, 赵 , 李 , 金 他只匹配一个,若是有任何一个满足就返回true ,它自带" 或 " 的意思,不需要再加" | "

    ^     逻辑运算符" 非 ",如[^汪赵李]这里表示只要不满足一个字符是汪,赵,李,就返回true

    [0-9] 匹配0-9的任意一个数字,同样的写法还有[6-9],[a-z],[A-Z] 等


    量词: 用来修饰原子  的重复次数
            格式为: 原子{量词}
    {n,m}    重复n到m次                            \d{1,9}     表示匹配1位到9位的数字,这里指的是数字的个数

    {n,}       重复n或者更多次                    \d{2,}       至少得有两个数字  

    {n}        重复n次                                   \d{2}       表示至少得有n个数字

    *           重复0次或者更多次                 \d*          表示任意个数的数字,0个 或者任意个

    ?          重复0次或者一次                     \d?         表示得数字个数为0个或者1个

    +          重复至少一次,可以更多次       \d+         表示至少一个           

    正则表达式是没有逻辑性的的,误伤率特别大

    二.贪婪与止贪婪

    1. 正则的贪婪特性举例
           要求匹配字符串<p>asdadaxxxxxxx</p><p></p>,使用的正则表达式为:/<p>.*<\/p>/  
       这段表达式" .* " 的意思是匹配任意字符,任意次数,   那么正则默认匹配到的数据是蓝色部分的字符, 虽然字符中也包括</p>,但是正则并没有因此而止;
       
    2. 止贪婪的方法
       按照上面的例子,正则的贪婪特性主要是因为有量词" * " ,它表示任意的字符,  在量词后面加上" ? ",表示匹配尽可能少的字符, 这就是正则的止贪婪;

       举例:匹配字母n后面有至少2个最多8个数字,使用的正则表达式为:/n\d{2,8}/
       这段表达式n的意思是匹配字母n \d{2,8} 的意思是匹配最低2位数,最大8位数的数字, 因为正则有贪婪的特性,所以他会匹配最大的个数,如果一个满足条件
           的数字有9位数,那么正则会匹配到8位止, /n\d{2,8}?/将正则修改为这样,那么正则在匹配到2位数字的时候就会停止匹配,这种做法叫做止贪婪;
     

    三.边界匹配

    1. 正则的边界匹配举例:要求检测输入内容是否为手机号的正则表达式为:/1\d{10}/
       这时候用户输入一段字符串:我的手机号是:"19999999999", 和我们想要的单纯的手机号格式不匹配,但是正则还是会返回true,因为它这串字符串中包含正则能
       够判断的字符串"19999999999", 这是错误的,应该指定正则开始匹配的位置的.

       /^1\d{10}$/ /^$/  这两个符号风别表示开头和结尾, " ^ " 表示从字符串的开头进行匹配, " $ "表示匹配到结尾,和^搭配使用就行,个人感觉鸡肋;
           边界匹配主要是面向用户












  • 相关阅读:
    Bzoj1597 [Usaco2008 Mar]土地购买
    Bzoj1500 [NOI2005]维修数列
    模拟7 题解
    模拟6 题解
    模拟5 题解
    远古杂题 2
    远古杂题 1
    [NOIP2013]华容道 题解
    奇袭 CodeForces 526F Pudding Monsters 题解
    图论杂题
  • 原文地址:https://www.cnblogs.com/lyuweigh/p/45b75fe0443beb7f51cac77ff22399bd.html
Copyright © 2011-2022 走看看