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

    正则好久不用了,几乎已经忘记了。复习下。

    普通字符串

    1、[ABC]  匹配 [...] 中的所有字符

    var str = "123abcgoolebeijing";
    var patt1 =  /[aeiou]/g;
    document.write(str.match(patt1));
    //输出:a,o,o,e,e,i,i

    2、[^ABC]  匹配除[…]中所有字符

    var str = "123abcgoolebeijing";
    var patt1 =  /[^aeiou]/g;
    document.write(str.match(patt1));
    //输出:1,2,3,b,c,g,l,b,j,n,g

    3、[A-Z] 表示一个区间,匹配所有大写字母,[a-z] 表示所有小写字母

    4、.   匹配除换行符( 、 )之外的任何单个字符

    5、[sS]  匹配所有。s 是匹配所有空白符,包括换行,S 非空白符,不包括换行。

    6、匹配字母、数字、下划线。等价于 [A-Za-z0-9_]

    特殊字符

    所谓特殊字符,就是一些有特殊含义的字符,若要匹配这些特殊字符,必须首先使字符"转义",即,将反斜杠字符 放在它们前面。下表列出了正则表达式中的特殊字符:

    特别字符描述
    $ 匹配输入字符串的结尾位置。
    ( ) 标记一个子表达式的开始和结束位置。
    * 匹配前面的子表达式零次或多次。
    + 匹配前面的子表达式一次或多次。
    . 匹配除换行符 之外的任何单字符。
    [ 标记一个中括号表达式的开始。
    ? 匹配前面的子表达式零次或一次,或指明一个非贪婪限定符。
    将下一个字符转义。
    ^ 匹配输入字符串的开始位置。在方括号表达式中使用,表示不接受该方括号表达式中的字符集合。
    { 标记限定符表达式的开始。
    | 指明两项之间的一个选择。

    选择

    用圆括号 () 将所有选择项括起来,相邻的选择项之间用 | 分隔。

    () 表示捕获分组,() 会把每个分组里的匹配的值保存起来, 多个匹配值可以通过数字 n 来查看(n 是一个数字,表示第 n 个捕获组的内容)。

    //匹配一个数字开头多个字母结尾的组合
    var str = "123abcGooleB7eijing";
    var patt1 =  /([1-9])([a-z]+)/g;
    document.write(str.match(patt1));
    //3abc,7eijing

    修饰符(标记)

    修饰符含义描述
    i ignore - 不区分大小写 将匹配设置为不区分大小写,搜索时不区分大小写: A 和 a 没有区别。
    g global - 全局匹配 查找所有的匹配项。
    m multi line - 多行匹配 使边界字符 ^ 和 $ 匹配每一行的开头和结尾,记住是多行,而不是整个字符串的开头和结尾。
    s 特殊字符圆点 . 中包含换行符  默认情况下的圆点 . 是 匹配除换行符   之外的任何字符,加上 s 修饰符之后, . 中包含换行符 。
    var str="Runoobgoogle
    taobao
    runoobweibo";
    var n1=str.match(/^runoob/g);   // 匹配不到
    var n2=str.match(/^runoob/gi);  // 不区分大小写 匹配到一个
    var n3=str.match(/^runoob/gmi);  // 多行匹配不区分大小写 匹配到两个
    var str="google
    runoob
    taobao";
    var n1=str.match(/google./);   // 没有使用 s,无法匹配
    
    var n2=str.match(/runoob./s);  // 使用 s,匹配
    

    部分元字符

    

    匹配一个单词边界,也就是指单词和空格间的位置。例如, 'er' 可以匹配"never" 中的 'er',但不能匹配 "verb" 中的 'er'。

    B

    匹配非单词边界。'erB' 能匹配 "verb" 中的 'er',但不能匹配 "never" 中的 'er'。

    cx

    匹配由 x 指明的控制字符。例如, cM 匹配一个 Control-M 或回车符。x 的值必须为 A-Z 或 a-z 之一。否则,将 c 视为一个原义的 'c' 字符。

    d

    匹配一个数字字符。等价于 [0-9]。

    D

    匹配一个非数字字符。等价于 [^0-9]。

    f

    匹配一个换页符。等价于 x0c 和 cL。

    匹配一个换行符。等价于 x0a 和 cJ。

    匹配一个回车符。等价于 x0d 和 cM。

    s

    匹配任何空白字符,包括空格、制表符、换页符等等。等价于 [ f v]。

    S

    匹配任何非空白字符。等价于 [^ f v]。

    匹配一个制表符。等价于 x09 和 cI。

    v

    匹配一个垂直制表符。等价于 x0b 和 cK。

    w

    匹配字母、数字、下划线。等价于'[A-Za-z0-9_]'。

    W

    匹配非字母、数字、下划线。等价于 '[^A-Za-z0-9_]'。

    完整文档:https://www.runoob.com/regexp/regexp-syntax.html

  • 相关阅读:
    Django~1
    Codeforces Round#201(div1) D. Lucky Common Subsequence
    ACdream原创群赛(18)のAK's dream题解
    区间dp
    部署AlwaysOn第三步:集群资源组的健康检测和故障转移
    Join 和 App
    SSRS配置1:凭证和邮件
    巧用Alt 键
    把Excel的数据导入到数据库
    jvm系列:Java GC 分析
  • 原文地址:https://www.cnblogs.com/liangtao999/p/14934479.html
Copyright © 2011-2022 走看看