正则表达式(菜鸟教程)

    科技2022-07-15  183

    文章目录

    普通字符特殊字符修饰符(标记)


    普通字符

    '+ 前面的字符出现一次或多次

    eg:run + b 等价于 runnb,runnnn…b do(es) + 等价于 does,doeseses…

    '* 前面的字符0,1多次

    ? 前面的字符0,1次

    . 换行符\n之外的任何单字符

    | 两项之间的一个选择

    \ 转义符号 eg:* 就是匹配字符* 而不是特殊字符

    特殊字符

    [ABC]:匹配ABC(顺序无关)

    ^:取反

    [A-Z],[0-9],[a-z] 分别匹配三个区间

    \w:匹配字母,数字,下划线 等价于[A-Za-z0-9_]

    \d:匹配数字

    \n:匹配换行符

    \r:匹配回车符

    \s:匹配空白字符

    \S:匹配非空白字符

    {n}:非负整数,匹配确定的n次 eg:o{2} 匹配 food 中的两个o

    {n,}:至少匹配n次 o{1,} 等价于o+ o{0,}等价于o*

    {n,m}:匹配最少n最多m eg:[0-9]{1,2} 取0-99

    [1-9][0-9 匹配一个正整数 前面为了去0,后面*是0.1多次

    $:匹配输入字符串的结尾位置

    \b:匹配一个单词边界,即字和空格间的位置 eg:\bCha 或者 /ter\b/ 前面是从单词的开始处查找匹配项,后面是结尾处查找匹配项

    \B:非单词边界匹配 eg:\Bapt 能匹配Chapter 中的字符串 apt,但不匹配 aptitude 中的字符串 apt 应该是前者的三个字母出现在非单词边界处

    ():标记子表达式的开始和结束位置

    eg: 123456runoob123runoob456 ([1-9])([a-z]+):匹配一个数字开头,多个字母结尾,此时匹配出来的是6runoob和3runoob

    exp1(?=exp2):查找 exp2 前面的 exp1。 eg:runoob(?=[\d+]) 匹配出来的就是例子中123456后面的runoob

    (?<=exp2)exp1:查找 exp2 后面的 exp1。eg:(?<=[\d+]runoob) 匹配出来的就是456前面的runnoob

    修饰符(标记)

    var str=“Google runoob taobao runoob”;

    var n1=str.match(/runoob/); // 查找第一次匹配项

    var n2=str.match(/runoob/g); // 查找所有匹配项

    var n3=str.match(/runoob/gi); // 查找所有匹配项且不区分大小写

    var n4=str.match(/runoob/gm); // 多行匹配

    Processed: 0.013, SQL: 8