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

    目录

    第一节     正则表达式... 1

    第二节     Word的正则表达式... 4

     

    第一节          正则表达式

    clip_image002

    对于字符串“a5”,是由两个字符“a”、“5”以及三个位置组成的,这一点对于正则表达式的匹配原理理解很重要。

    A        字符组

    表达式

    说明

    能被匹配

    不被匹配

    [abc]

    匹配其中一个。那怕是符号字符。

    ac

    dA

    [a-z]

    匹配任意一个小写字母,限升序。

    ax

    AX

    [A-Z]

    匹配任意一个大写字母,限升序。

    AX

    ax

    [0-9]

    匹配任意一个数字,限升序。

    等价于[0123456789]

    01

    ax

    [u4e00-u9fa5]

    表示任意一个汉字

    a

    [a-zA-Z0-9]

    匹配任意一个字母或数字

    A0

    +@_

    [^a1<]

    匹配除此之外的字符(排除)

    B2

    1<

    [^a-z]

    表示除小写字母外的任意一个字符

    AB

    ab

    .

    匹配除换行符 的任何单个字符。

     

     

    B        定位符

    字符

    描述

    举例

    ^

    从行首位置开始匹配。

    ^The:行开头为the/THE,但athe不是。

    $

    从行未位置检查匹配。

    end$:行结尾为end/END,但enda不是。

    

    B

    是否匹配一个词边界,各软件定义不一样的。

    Notepad++中只有且和普通查找无区别。

    C         限定选择符

    字符

    说明

    举例

    ?

    匹配前面的子表达式0次或1次。

    {0,1}

    ab?匹配aababb

    *

    匹配前面的子表达式0次或任意多次。{0,}

    [^a]*:匹配bca,不是aab

    +

    匹配前面的子表达式1次或任意多次。{1,}

    ds+d两个数字中间至少有一个以上的空白字符。

    |

    多个子表达式之间取“或”的关系;

    如是字符串可书写任意长度。

    (t|T)(h|H)等价[tT][hH]

    等价(Th|tH|th|TH)

    Notepadd++不分大小写

    ( )

    要匹配的表达式。

    获取后可以反向引用(见捕获组)。

    ()里可以放[]{},但[]{}里不能放()

    /^[a-zA-Z]{1}([a-zA-Z0-9]|[.@_]){4,19}$/

    以字母开头,可带数字小数点@下划线的长度5-20字符串的行。

    ^[0-9]{1,20}$:仅1-20位的数字行。

    [ ]

    定义匹配的字符范围,只能是单个字符。

    { }

    前面子表达式的匹配长度。

    {m}

    匹配前面的子表达式m

    d{3}相当于ddd

    (abc){2}相当于abcabc

    {m,n}

    匹配前面的子表达式最少m次,最多n

    d{2,3}匹配2-3位的数字

    {m,}

    匹配前面的子表达式至少m

    [a-z]{8,}至少8位以上的字母

    D        预定义字符集

    小写是匹配,大写是不匹配。w字母数字下划线,d数字,s空白字符。

    字符

    描述

    w

    任意一个字母或数字或下划线,相当于[a-zA-Z0-9_]

    W

    w取反,相当于[^a-zA-Z0-9_]

    d

    任意一个数字,相当于[0-9]

    D

    任意一个非数字字符,d取反,相当于[^0-9]

    s

    任意空白字符,相当于[ f v]。包含空格字符。

    S

    任意非空白字符,s取反,相当于[^ f v]

    1).   POSIX风格的预定义字符类

     

    clip_image004

    E         非打印字符

    字符

    描述

    cx

    匹配由x指明的控制字符。

    例如cM匹配一个Control-M或回车符,x的值必须为A-Za-z之一。

    f

    匹配一个换页符。等价于x0ccL

    匹配一个换行符。等价于x0acJ

    匹配一个回车符。等价于x0dcM

    匹配一个制表符。等价于x09cI

    v

    匹配一个垂直制表符。等价于x0bcK

    F         转义字符

    如果在正式表式中查找(正式表达工自身字符)时,前缀转义字符即可。

    将下一个字符标记为或特殊字符、或原义字符、或向后引用、或八进制转义符。

    转义字符:

    示例

    匹配$字符:$       匹配*字符:*       匹配+字符:+

    匹配.字符:.         匹配[字符:[         匹配?字符:?

    匹配/字符:/        匹配字符:\        匹配{字符:{

    例外

    []中不需要转义字符。

    因为不会这样书写:^写成[^]d-z写成[d-]

    /:在某些语言中表示正则表达式的开始或结束,而VBScript中使用“”做边界符。

    G        模式修饰符

    模式修饰符的作用是设定模式。也就是规定正则表达式应该如何解释和应用。

    不同的语言都有自己的模式设置,PHP中的主要模式如表所示:

    clip_image005

    H        捕获组

    表达式

    说明

    (Expression)

    普通捕获组,将子表达式Expression匹配的内容保存到以数字编号的组里

    (?<name> Expression)

    命名捕获组,将子表达式Expression匹配的内容保存到以name命名的组里

    12

    对序号为12的捕获组的反向引用

    k<name>

    对命名为name的捕获组的反向引用

    查找:(t|T)(h|H)   替换:1(abc)2

    描述:th/TH单词替换为tabch/TabcH

    第二节          Word的正则表达式

    clip_image007clip_image009

    示例文:

    A123

    B123

    A234

    A123

    And

    结果:

    A123

    B123

    A234

    And

    查找:

    (<[!^13]*^13)(*)1

    替换:

    12

    释义:

    ()为表达式,<为单词开头,[!^13]为排除分段符^p1为第一个表达式

     

    在正则表达式中以^13代替^p

     

    MS-HELP URL

    Tty725 说:
    欢迎转载,但请注明内容的来源或URL;
    [转]”篇章,必须保留原始来源且勿添加本blog指向。
  • 相关阅读:
    我的第一个MFC小项目(2)之 初涉位图
    MFC中托盘(TRAYICON)实现
    基于顺序表哈夫曼树
    对《VC中添加WM_DEVICECHANGE消息(经典)》的补充
    C++对析构函数的误解
    我的第一个MFC小项目(4)之 位图转换(续)
    (堆的应用)Huffman赫夫曼树的建立
    一个母亲一生撒的8个谎言
    线裎里面传递参数问题解决方案
    Validating user inputs using Regular Expressions
  • 原文地址:https://www.cnblogs.com/Tty725/p/8397689.html
Copyright © 2011-2022 走看看