zoukankan      html  css  js  c++  java
  • 正则表达式(2) -- 模式匹配符

    正则表达式(1)

    2. 正则表达式语法

    正则表达式的语法主要就是对各个元字符功能的描述。元字符从功能上大致分为:模式匹配符,定位符与原义字符,限定符,选择匹配符,特殊字符,字符匹配符,分组组合和反向引用符。

    2.1 模式匹配符

    下面的表格列出了在正则表达式中能够使用的字符列表及相关描述。

    字符 描述
     指出接着的字符为特殊字符。例如,"/b/" 匹配字符 "b",通过在 "b" 前面加一个反斜杠,也就是"//",则该字符变成特殊字符,表示匹配一个单词的分界线。
    ^  表示匹配的字符必须在最前边。例如,"/^A/" 不匹配 "an A" 中的 "A",但匹配 "An A" 中最前面的 "A"。
    $    与^类似,匹配最末的字符。例如,"/t$/" 不匹配 "eater" 中的 "t",但匹配 "eat" 中的 "t"。
    *  匹配*前面的字符0次或n次。例如,"/bo*/" 可以匹配 "A ghost booooed" 中的 "booo" 或 "A bird warbled" 中的 "b",但不匹配 "A goat grunted"中的任何字符。
    +  匹配+前面的字符1次或n次。等价于"{1,}"。例如,"/a+/" 匹配 "candy" 中的 "a" 和 "caaaaaandy" 中的所有 "a" 。
    ?    匹配?前面的字符0次或1次。例如,"/e?le?/" 匹配 "angel" 中的 "el" 和 "angle" 中的 "le"。
    .  (小数点) 匹配除换行符外的所有单个字符。 例如,"/.n/" 匹配 "nay, an apple is on the tree" 中的 "an" 和 "on",但不匹配 "nay"。
    (x)  匹配 "x" 并记录匹配的值。例如,"/(foo)/" 匹配和记录 "foo bar" 中的 "foo"。匹配子串能被结果数组中的索引[1],...[n]返回,或被RegExp对象的属性$1...$9返回
    x|y  匹配 "x" 或者 "y"。例如,"/green|red/" 匹配 "green apple" 中的 "green" 和 "red apple" 中的 "red"。
    {n}  这里的n是一个正整数。匹配前面的n个字符。例如,"/a{2}/" 不匹配 "candy" 中的 "a",但匹配 "caaandy" 中前面的两个 "a"。
    {n,}

     这里的n是一个正整数。匹配至少n个前面的字符。例如,"/a{2,}/" 不匹配 "candy" 中的 "a",但匹配 "caaaaandy" 中的所有 "a"。

    {n,m}  这里的n和m都是正整数。匹配至少n个最多m个前面的字符。例如, "/a{1,3}/" 不匹配 "cndy" 中的任何字符。但匹配 "candy" 中的 "a","caandy" 中的前面两个 "a"和 "caaaandy" 中的前面3个 "a"。需要注意的是,即使 "caaaandy" 中有很多个 "a",但只匹配前面的3个 "a"。
    [xyz]  字符列表,匹配列出的任意字符。可以通过连字符"-"指出一个字符范围。例如, "[abcd]" 跟 "[a-d]" 一样,它们匹配 "brisket" 中的 "b" 和 "ache" 中的 "a"。
    [^xyz]  字符补集。匹配除了列出的字符外的所有东西。可以使用连字符 "-" 指出一个字符范围。
    []  匹配一个空格(不要与 "/b" 混淆)
         匹配一个单词的分界线,如一个空格。例如,"/nw/"匹配 "noonday"中的"no","/wy/"匹配 "possibly yesterday" 中的 "ly"。 
     B    匹配一个单词的非分界线。例如,"/wBn/" 匹配 "noonday" 中的 "on","/yBw/" 匹配 "possibly yesterday" 中的 "ye"。
     cX    X是一个控制字符。匹配一个字符串的控制字符。例如,"/cM/"匹配一个字符串中的control-M
     d    匹配一个数字,等价于 "[0-9]"。例如,"/d/" 或 "/[0-9]/" 匹配 "B2 is the suite number" 中的 "2"
     D    匹配任何的非数字,等价于 "[^0-9]"。例如,"/D/" 或 "/[^0-9]/" 匹配 "B2 is the suite number" 中的 "B" 
     f    匹配一个表单符
         匹配一个换行符 
         匹配一个回车符
     s    匹配一个单个white空格符,包括空格、tab、form feed、换行符。等价于 "[f v]" 
     S    匹配一个制表符
     v    匹配一个顶头制表符
         匹配一个制表符 
     w    匹配所有的数字和字母以及下划线,等价于"[A-Za-z0-9]" 
     W    匹配除数字、字母、下划线外的其他字符。等价于"[^A-Za-z0-9]" 
         这里的n是一个正整数。匹配一个正则表达式的最后一个子串的n的值(计数左圆括号)。
     ooctal和xhex    这里的 "ooctal" 是一个八进制的 escape值,而 "xhex" 是一个十六进制的escape值,允许在一个正则表达式中嵌入ASCII码。
     
    文小白滴笔记~~
  • 相关阅读:
    转载:C#中的属性、和字段的区别
    在idea中创建一个maven web工程及解决工程创建过慢问题
    注解&动态代理
    Listener&Filter
    Ajax&jQuery
    JSP&EL&JSTL
    Cookie&Session
    HttpServletRequest&HttpServletResponse
    Http协议&Servlet
    XML
  • 原文地址:https://www.cnblogs.com/lwl0812/p/5357274.html
Copyright © 2011-2022 走看看