美文网首页
正则表达式

正则表达式

作者: 刘岩2019 | 来源:发表于2018-11-30 20:57 被阅读0次

    匹配纯文本  

    Ben

    Hello, my name is Ben. Please visit my website at http://www.forta.com

    . 匹配任意字符(默认模式不匹配\n,单行模式可以匹配\n)   

    a.c 

    abc acc a2c


    .a.\.xls  

    na1.xls  na2.xls

    前面两个点任意字符 ,最后一个转义点,  . 和 \ 等都叫做元字符(metacharacter),表示这个字符有特殊含义,而不是字符本身的含义,如果我们要匹配元字符的话,我们需要对元字符进行转义

     []   字符集,对应位置可以是字符集中的任意字符,字符集中的字符可以逐个列出,也可以给出范围,如[abc]或[a-c] ,第一个字符如果是^则表示取反,如[^abc];

    所有特殊字符在字符集中都失去原有的特殊含义。其中 - ] ^特殊,如果要使用 - 或 ] 或 ^ 可以在前面加上反斜杠转义。-放在最前,或者最后,]放在第一个字符,^不在第一个字符,都会失去原有意义 

    n\*123[*][1-9]

    通过\转义或者字符集[]  元字符*失去原有意义 

    [nsl]a.\.xls       

    [nsl]表示n或者s或者l

    [nsl]a[0123456789]\.xls    

    0到9任意一个

    [nsl]a[0-9a-f]\.xls        

    字符区间0到9或者a到f 

    [ns]a[^0-9]\.xls         

     取非 不能是0-9

     \d  

    数字0-9

    \D    等于   [^\d] 

    非数字 

    \w [A-Za-z0-9_] 

     单词字符

    \W  等于 [^\w] 

     非单词字符

    \s 

    空白字符[<空格>\t\r\n\f\v] 

    \S 等于 [^\s] 

     非空白字符

     匹配前一个字符0或无限次

    +

     匹配前一个字符1次或无限次

     匹配前一个字符0次或1次

    {m} 

     匹配前一个字符m次

    {m,n} 

     匹配前一个字符m至n次

    {n, }

    至少匹配n次的写法为 

    {0 , m}

    至多匹配m次的写法为

    + 等价 {1, }

    * 等价 {0, }

    ? 等价 {0 , 1}

     *   +   ?   {n, }   {m,n}

    贪婪型元字符,尽可能长的去匹配 

     *?   +?    ??  {n, }?  {m,n}?

    懒惰型元字符,尽可能短的去匹配

    \b 

    是一个位置匹配符,它用来匹配一个单词的边界位置

    字符在这里用来匹配一个字符串开头位置的   

    $  

    字符用来匹配一个字符串的结束位置的

    ()

    用() 括起来的叫做一个子表达式,括号里的内容被认为是一个整体,紧跟括号的数量限定符会作用于这个整体,通常在编程语言中利用子表达式语法捕获内容之后,被捕获内的内容会被存入一个数组,我们都是通过下标(即0, 1, 2, 3 ...)来访问这些内容的。(?s:re) 这个语法会把re指定为单行模式(即,在re中 . 可以匹配 \n 的), 同时不会对re匹配的内容进行捕获,如果我们需要捕获re中的内容的话,要在re的两端加上(), 即使用如下表达式 (?s:(re))

    golang 使用正则表达式样例:

    - 正则表达式在线测试 http://tool.chinaz.com/regex/

    - 原始官方版本:https://code.google.com/p/re2/wiki/Syntax

    - 国内好心人版本:http://www.sun190.com/2015/01/re2-%E6%AD%A3%E5%88%99%E8%A1%A8%E8%BE%BE%E5%BC%8F/

    相关文章

      网友评论

          本文标题:正则表达式

          本文链接:https://www.haomeiwen.com/subject/sjckcqtx.html