zoukankan      html  css  js  c++  java
  • asp.net中正则表达式使用(一)

    一、限定符:限定符提供了一种简单方法,用于指定允许特定字符或字符集自身重复出现的次数。限定符始终引用限定符前(左边)的模式,通常是单个字符,除非使用括号创建模式组。

    (一)非显示限定符

    1、

    *,描述“出现 0 或多次”。

    2、

    +,描述“出现 1 或多次”。

    3、

    ?,描述“出现 0 或 1 次”。

    (二)显式限定符

      显式限定符使用花括号 {n,m} 及其中的数字值表示模式出现次数的上下限。
      如果仅指定一个数字,则表示次数上限,例如,x{5} 将准确匹配 5 个 x 字符 (xxxxx),如果数字后跟一个逗号,如 x{5,},表示匹配任何出现次数大于 4 的 x 字符。

    二、元字符

      .(句点或点)元字符是最简单但最常用的一个字符。它可匹配任何单字符。如果要指定某些模式可包含任意组合的字符,使用句点非常有用,但一定要在特定长度范围内。
      ^ 元字符可指定字符串(或行)的开始。
       $ 元字符可指定字符串(或行)的结束。通过将这些字符添加到模式的开始和结束处,可强制模式仅匹配精确匹配的输入字符串。如果 ^ 元字符用在方括号 [ ] 指定的字符类的开头,将有特殊的含义。具体内容后。
      \ (反斜杠)元字符既可根据特殊含义“转义”字符,也可指定预定义集合元字符的实例。同样,具体内容见下。为了在正则表达式中包括文字样式的元字符,必须使用反斜杠进行“转义”。例如,如果要匹配以“c:\”开始的字符串,可使用:^c:\\。注意,要使用 ^ 元字符指出字符串必须以此模式作为开始,然后用反斜杠元字符转义文字反斜杠。
      |(管道)元字符用于交替指定,特别用于在模式中指定“此或彼”。例如,a|b 将匹配包含“a”或“b”的任何输入内容,这与字符类 [ab] 非常类似。
       ( ) 括号用于给模式分组。它允许使用限定符让一个完整模式出现多次。为了便于阅读,或分开匹配特定的输入部分,可能允许分析或重新设置格式。

    、字符类:

      字符类是正则表达式中的“迷你”语言,在方括号 [ ] 中定义。在表达式中使用字符类时,可在模式的此位置使用其中任何一个字符(但只能使用一个字符,除非使用了限定符)。请注意,不能使用字符类定义单词或模式,只能定义单个字符。

      通过在括号中使用连字符 - 来定义字符的范围。连字符在字符类中有特殊的含义(不是在正则表达式中,因此,准确地说它不能叫正则表达式元字符),且仅在连字符不是第一个字符时,连字符才在字符类中有特殊含义。要使用连字符指定任何数值数字,可以使用 [0-9]。小写字母也一样,可以使用 [a-z],大写字母可以使用 [a-z]。连字符定义的范围取决于使用的字符集。因此,字符在(例如)ascii 或 unicode 表中出现的顺序确定了在范围中包括的字符。如果需要在范围中包括连字符,将它指定为第一个字符。例如:[-.?] 将匹配 4 个字符中任何一个字符(注意,最后的字符是个空格)。另请注意,正则表达式元字符在字符类中不做特殊处理,所以这些元字符不需要转义。考虑到字符类是与其他正则表达式语言分开的一种语言,因此字符类有自己的规则和语法。

      如果使用字符 ^ 作为字符类的第一个字符来否定此类,也可以匹配字符类成员以外的任何字符。因此,要匹配任何非元音字符,可以使用字符类 [^aaeeiioouu]。注意,如果要否定连字符,应将连字符作为字符类的第二个字符,如 [^-]。记住,^ 在字符类中的作用与它在正则表达式模式中的作用完全不同。

    四、预定义的集合元字符

    元字符 等效字符类

    \a

    匹配铃声(警报);\u0007

    \b

    匹配字符类外的字边界,它匹配退格字符,\u0008

    \t

    匹配制表符,\u0009

    \r

    匹配回车符,\u000d

    \w

    匹配垂直制表符,\u000b

    \f

    匹配换页符,\u000c

    \n

    匹配新行,\u000a

    \e

    匹配转义符,\u001b

    \040

    匹配 3 位 8 进制 ascii 字符。\040 表示空格(十进制数 32)。

    \x20

    使用 2 位 16 进制数匹配 ascii 字符。此例中,\x2- 表示空格。

    \cc

    匹配 ascii 控制字符,此例中是 ctrl-c。

    \u0020

    使用 4 位 16 进制数匹配 unicode 字符。此例中 \u0020 是空格。

    \*

    不代表预定义字符类的任意字符都只作为该字符本身对待。因此,\* 等同于 \x2a(是文字 *,不是 * 元字符)。

    \p{name}

    匹配已命名字符类“name”中的任意字符。支持名称是 unicode 组和块范围。例如,ll、nd、z、isgreek、isboxdrawing 和 sc(货币)。

    \p{name}

    匹配已命名字符类“name”中不包括的文本。

    \w

    匹配任意单词字符。对于非 unicode 和 ecmascript 实现,这等同于 [a-za-z_0-9]。在 unicode 类别中,这等同于 [\p{ll}\p{lu}\p{lt}\p{lo}\p{nd}\p{pc}]

    \w

    \w 的否定,等效于 ecmascript 兼容集合 [^a-za-z_0-9] 或 unicode 字符类别 [^\p{ll}\p{lu}\p{lt}\p{lo}\p{nd}\p{pc}]

    \s

    匹配任意空白区域字符。等效于 unicode 字符类 [\f\n\r\t\v\x85\p{z}]。如果使用 ecmascript 选项指定 ecmascript 兼容方式,\s 等效于 [ \f\n\r\t\v] (请注意前导空格)。

    \S

    匹配任意非空白区域字符。等效于 unicode 字符类别 [^\f\n\r\t\v\x85\p{z}]。如果使用 ecmascript 选项指定 ecmascript 兼容方式,\s 等效于 [^ \f\n\r\t\v] (请注意 ^ 后的空格)。

    \d

    匹配任意十进制数字。在 ecmascript 方式下,等效于 unicode 的 [\p{nd}]、非 unicode 的 [0-9]

    \d

    匹配任意非十进制数字。在 ecmascript 方式下,等效于 unicode 的 [\p{nd}]、非 unicode 的 [^0-9]

    五、asp.net中建立和使用RegularexPressions类(见《asp.net中正则表达式使用(二)

  • 相关阅读:
    携程呼叫中心异地双活——座席服务的高可用
    从5台服务器到两地三中心:魅族系统运维架构演进之路(含PPT)
    从“两地三中心”到“分布式多活”
    “两地三中心”容灾备份设计与实现_数据备份_数据恢复-阿里云
    膏方_百度百科
    矿泉水瓶加湿器 办公室空气加湿器迷你便携水瓶座 小型USB迷你家用静音 白色【图片 价格 品牌 报价】-京东
    【资料下载】ANTLR的最全的官方文档:The Definitive ANTLR Reference:v2,v3,v4版本都有下载 | 在路上
    “百万年薪40多万个税”高不高?你怎么看?_财经_腾讯网
    浙江四大滑雪场攻略及2015滑雪门票价格
    druid parser
  • 原文地址:https://www.cnblogs.com/sheseido/p/1862431.html
Copyright © 2011-2022 走看看