• 正则表达式 Regular Expression

    1. Metacharacter

      1. Base

        1. 限定符

          1. *

            1. 前面字符重复零次或更多次

          2. +

            1. 前面字符重复一次或更多次

          3. ?

            1. 前面字符重复零次或一次

          4. {x}

            1. 前面字符重复x次

          5. {x,}

            1. 前面字符重复x或更多次

          6. {x,y}

            1. 前面字符重复不少 于x,不大于y次

        2. .

          1. 除换行符以外的任意字符

        3. \b

          1. 单词分界处

            1. \b匹配这样的位置:它 的前一个字符和后一个 字符不全是(一个是,一 个不是或不存在)\w

            1. 单词:不少于一 个的连续的\w

        4. \s

          1. 空白符

            1. 空格

            2. 制表符

            3. 换行符

            4. 全角空格

        5. \d

          1. 数字

        6. \w

          1. 字母

          2. 数字

          3. 下划线

          4. 汉字

        7. ^

          1. 字符串的开始

        8. $

          1. 字符串的结束

      2. 字符集合

        1. [aeiou]

        2. [0-9]

          1. 等价于\d

        3. [a-z0-9A-Z_]

          1. 等价于\w

        4. [\d]

      3. 分支条件

        1. |

        2. 注意顺序

      4. 反义

        1. \D

          1. 任意非数字的字符

        2. [^aeiou]

          1. 除了aeiou以外的任意字符

      5. 转义符

    2. 分组

      1. 或曰子表达式

      2. (ooxx)

      3. (?#comment)

        1. 注释

          1. 忽略空白符选项

      4. 向后引用

        1. 组号分配

          1. 0对应整个表达式

          2. 从左向右扫描两遍

            1. 从1开始

            2. 未命名组

            3. 命名组

        2. (?exp)

          1. 指定该组名称为name

          2. 尖括号可用单引号代替

        3. (?:exp)

          1. 不捕获exp,不给此组分配组号

        4. 引用

          1. \1

            1. 分组1中捕获的内容

      5. 零宽断言

        1. 匹配位置

          1. 类似\b

        2. (?=exp)

          1. 此位置后面能匹配exp

            1. \b\w+(?=ing\b)

              1. 匹配以ing结尾的单词的前面部分

        3. (?<=exp)

          1. 此位置前面能匹配exp

        4. (?!exp)

          1. 此位置后面不能匹配exp

          2. (?!)

            1. 使匹配失败

        5. (?

          1. 此位置前面不能匹配exp

        6. (?<=<(\w+)>).*(?=<\/\1>)

          1. 不包含属性的简单HTML标签里的内容

    3. 测试工具

      1. RegexBuddy

      2. Regex Tester

      3. regexpal.com

    4. 贪婪与懒惰

      1. The match that begins earliest wins

      2. 贪婪匹配

        1. 限定符通常匹配尽可能多的字符

      3. 懒惰匹配

        1. 匹配尽可能少的字符

        2. 懒惰限定符

          1. *?

          2. +?

          3. ??

          4. {x,y}?

          5. {n,}?

    5. 处理选项

      1. 忽略大小写

      2. 多行模式

        1. ^扩展:匹配任意一行行首

        2. $扩展:匹配任意一行行尾

      3. 单行模式

        1. .扩展:匹配任意字符(包括\n)

      4. 忽略空白

        1. 忽略非转义空白,启用#注释

      5. 显式捕获

        1. 仅捕获已被显式命名的组

    6. 平衡组

      1. (?'a'exp)

        1. 把捕获的exp命名为a,压入堆栈

      2. (?'-a'exp)

        1. 遇到exp时弹出名为a的捕获内容,若堆栈为空,则此分组匹配失败

      3. (?(a)yes|no)

        1. 若堆栈中存在命名为a的组(内容)则匹配yes,否则匹配no

      4. (?(a)yes)

  • All Comments ( 0 )

    正则表达式 Regular Expression

    Added: 2011-04-18 01:35:17

    From: D_Sunset (Joined 2010-08-08 04:26:33)

    69 views |0 downloads

    正则表达式 Regular Expression

    More From: D_Sunset

           正则表达式
Regular Expression
    正则表达式 Regular Expression
    2011-04-18 01:35:17|69 views
    创建互联网产品
    创建互联网产品
    2010-10-29 13:29:49|54 views
    GRE写作
    GRE写作
    2010-08-10 17:04:42|646 views