正则表达式

[^\d] 非数字字符=\D [^\w] 非单词字符=\W [^\s] 非空白符=\S

正则表达式是一个小程序,它拥有自己的简单编程语言。通过“模式”将“字符串”分为两组(匹配/不匹配)。

1. 简单模式(//),匹配简单的直接量字符串。

     $_="yabba dabba doo";
     if(/abba/){
        print "It matched!\n";  #返回匹配为真
}

2. 元字符,在正则表达式中有特殊含义。

    . 为匹配任意一个字符的通配符,\n除外。
    \ 在元字符前加上反斜线\产生转义 ,使后一位元字符失去特殊作用。
    () 模式分组

3. 量词

    *  匹配前一个条目零次或多次。".*" 意为匹配任意字符零次或多次。
    +  匹配前一个条目一次以上。
    ?  匹配前一个条目零次或一次。

4. 模式分组

    ()对字符串分组

            例如:/fred+/ 可以匹配fredddddd字符串,日常不常见。

                      /(fred)+/会匹配fredfredfred字符串。

5. 圆括号()可以用于反向引用,即捕获组行为。

    反向引用写法为\1 \2 ...或\g{1} \g{2} ...,相应的数字表示对应顺序的捕获组

    例如:

   $_="abba";   
   if (/(.)\1/){ #(.)\1表明会匹配两个同样的字符。
      print "bb";
    }

    反向引用不必紧接在对应的捕获组后面,也可以存在多个括号为多个捕获组,每一组都有自己的反向引用

    例如:

    $_="yabba dabba doo";
    if (/y(.)(.)\2\1/){
        print "abba";
    }

6. 择一匹配 “|”,意为“或”,

    例如:

    /fred( |\t)+barry/  #意为匹配fred和barry之间出现一次以上空格、制表符或两者混合的字符串。

7. 字符集 为一组可能出现的字符

    [ ] 它匹配字符集中列出的任何一个单个字符,用 - 连接始末范围,例如[a-zA-Z]。- 在字符集里有特殊意义,在字符集外无

8. 字符集的简写

    \d 严格等于字符集[0-9]
    \s 匹配任意空白符[\f\t\b\r]。换页符\f、水平制表符\t、换行符\n、回车符\r、空格字符。
    \h 匹配水平空白符
    \v 匹配垂直空白符
    \w 匹配[a-zA-Z0-9],也可匹配单词。

9. 反义简写

    [^\d] 非数字字符=\D
    [^\w] 非单词字符=\W
    [^\s] 非空白符=\S
  • 发表于 2021-09-29 17:39
  • 阅读 ( 1750 )
  • 分类:perl

你可能感兴趣的文章

相关问题

0 条评论

请先 登录 后评论
rzx
rzx

74 篇文章

作家榜 »

  1. omicsgene 698 文章
  2. 安生水 347 文章
  3. Daitoue 167 文章
  4. 生物女学霸 120 文章
  5. xun 80 文章
  6. 红橙子 78 文章
  7. rzx 74 文章
  8. CORNERSTONE 72 文章