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

    字符类

    字符类与一组字符中的任何一个字符匹配。

        .     通配符:与除 之外的任何单个字符匹配。 
    若要匹配原意句点字符(. 或 u002E),您必须在该字符前面加上转义符 (.)。
    a.e "have" 中的 "ave", "mate" 中的 "ate"
    w 与任何单词字符匹配。 w "Room#1" 中的 "R"、 "o"、 "m" 和 "1"
    W 与任何非单词字符匹配。 W "Room#1" 中的 "#"
    s 与任何空白字符匹配。 ws "ID A1.3" 中的 "D "
    S 与任何非空白字符匹配。 sS "int __ctr" 中的 " _"
    d 与任何十进制数字匹配。 d "4 = IV" 中的 "4"
    D 匹配不是十进制数的任意字符。 D "4 = IV" 中的 " "、 "="、 " "、 "I" 和 "V"

    限定符

    限定符指定在输入字符串中必须存在上一个元素(可以是字符、组或字符类)的多少个实例才能出现匹配项。 限定符包括下表中列出的语言元素。

    限定符描述模式匹配
    * 匹配上一个元素零次或多次。 d*.d ".0"、 "19.9"、 "219.9"
    + 匹配上一个元素一次或多次。 "be+" "been" 中的 "bee", "bent" 中的 "be"
    ? 匹配上一个元素零次或一次。 "rai?n" "ran"、 "rain"
    { n } 匹配上一个元素恰好 n 次。 ",d{3}" "1,043.6" 中的 ",043", "9,876,543,210" 中的 ",876"、 ",543" 和 ",210"
    { n ,} 匹配上一个元素至少 n 次。 "d{2,}" "166"、 "29"、 "1930"
    { n , m } 匹配上一个元素至少 n 次,但不多于 m 次。 "d{3,5}" "166", "17668", "193024" 中的 "19302"
    *? 匹配上一个元素零次或多次,但次数尽可能少。 d*?.d ".0"、 "19.9"、 "219.9"
    +? 匹配上一个元素一次或多次,但次数尽可能少。 "be+?" "been" 中的 "be", "bent" 中的 "be"
    ?? 匹配上一个元素零次或一次,但次数尽可能少。 "rai??n" "ran"、 "rain"
    { n }? 匹配前导元素恰好 n 次。 ",d{3}?" "1,043.6" 中的 ",043", "9,876,543,210" 中的 ",876"、 ",543" 和 ",210"
    { n ,}? 匹配上一个元素至少 n 次,但次数尽可能少。 "d{2,}?" "166"、 "29" 和 "1930"
    { n , m }? 匹配上一个元素的次数介于 n 和 m 之间,但次数尽可能少。 "d{3,5}?" "166", "17668", "193024" 中的 "193" 和 "024"

    特殊字符

    所谓特殊字符,就是一些有特殊含义的字符,如上面说的"*.txt"中的*,简单的说就是表示任何字符串的意思。如果要查找文件名中有*的文件,则需要对*进行转义,即在其前加一个。ls *.txt。

    特别字符描述
    $ 匹配输入字符串的结尾位置。如果设置了 RegExp 对象的 Multiline 属性,则 $ 也匹配 ' ' 或 ' '。要匹配 $ 字符本身,请使用 $。
    ( ) 标记一个子表达式的开始和结束位置。子表达式可以获取供以后使用。要匹配这些字符,请使用 ( 和 )。
    * 匹配前面的子表达式零次或多次。要匹配 * 字符,请使用 *。
    + 匹配前面的子表达式一次或多次。要匹配 + 字符,请使用 +。
    . 匹配除换行符 之外的任何单字符。要匹配 . ,请使用 . 。
    [ 标记一个中括号表达式的开始。要匹配 [,请使用 [。
    ? 匹配前面的子表达式零次或一次,或指明一个非贪婪限定符。要匹配 ? 字符,请使用 ?。
    将下一个字符标记为或特殊字符、或原义字符、或向后引用、或八进制转义符。例如, 'n' 匹配字符 'n'。' ' 匹配换行符。序列 '\' 匹配 "",而 '(' 则匹配 "("。
    ^ 匹配输入字符串的开始位置,除非在方括号表达式中使用,此时它表示不接受该字符集合。要匹配 ^ 字符本身,请使用 ^。
    { 标记限定符表达式的开始。要匹配 {,请使用 {。
    | 指明两项之间的一个选择。要匹配 |,请使用 |。

     

     

    定位点

    定位点或原子零宽度断言会使匹配成功或失败,具体取决于字符串中的当前位置,但它们不会使引擎在字符串中前进或使用字符。

    断言描述模式匹配
    ^ 匹配必须从字符串或一行的开头开始。 ^d{3} "567-777-" 中的 "567"
    $ 匹配必须出现在字符串的末尾或出现在行或字符串末尾的   之前。 -d{4}$ "8-12-2012" 中的 "-2012"
    A 匹配必须出现在字符串的开头。 Aw{4} "Code-007-" 中的 "Code"
     匹配必须出现在字符串的末尾或出现在字符串末尾的  之前。 -d{3} "Bond-901-007" 中的 "-007"
    z 匹配必须出现在字符串的末尾。 -d{3}z "-901-333" 中的 "-333"
    G 匹配必须出现在上一个匹配结束的地方。 \G(d) "(1)(3)(5)[7](9)" 中的 "(1)"、 "(3)" 和 "(5)"
     匹配一个单词边界,也就是指单词和空格间的位置。 er 匹配"never"中的"er",但不能匹配"verb"中的"er"。
    B 匹配非单词边界。 erB 匹配"verb"中的"er",但不能匹配"never"中的"er"。

     

    正则表达式验证工具:http://tool.chinaz.com/regex

  • 相关阅读:
    SqlServer相关文章
    C#字典(Dictionary)相关文章记录
    Mysql相关文章
    Rabbitmq相关文章
    C#多线程之锁相关文章
    23种设计模式相关文章
    IdentityServer4之Consent与offline_access
    .netCore mvc 在javascript中读取属性中文乱码的问题
    基于 NET5的QQ扫码登录的第三方实现(无需注册开发者)
    Windows 操作系统开启长路径支持
  • 原文地址:https://www.cnblogs.com/xbblogs/p/6295736.html
Copyright © 2011-2022 走看看