正则表达式-字符组

Posted on 2020-07-05 11:55  妖娆的油条  阅读(241)  评论(0编辑  收藏  举报
  1. 定义: 字符组就是一组字符,在正则表达式中,表示在同一位置可能出现的各种字符。

  2. 语法格式:

    • 在字符组中可以出现重复字符,但不推荐。比如[0234544287]是没有语法错误的,但是不推荐。

    • 一个[]对应一个占位符

    • - 范围表示法:如[x-y]表示x对应ASCII编码到y对应ASCII编码范围内的所有字符。

      • 要求: x-ASCII < y-ASCII

        // 0-9 对应的ASCII编码是:48-57
        // A-Z 对应的ASCII编码是:65-90
        // a-z 对应的ASCII编码是:97-122
        // 用[0-z]表示[0-9A-Za-z]不是不可以,但不推荐。按照惯例,字符组的范围都表示一类字符;其次,他们间隔的部分,像58-64、91-96又是其它字符,就会出现问题
        

    • 字符组的简单表示法

      \d [0-9]
      \w [0-9A-Za-z_]
      \s [\t\n\r\v\f]
      
  3. 元字符与转移

    • 在上面的例子中[0-9]中的-就是元字符。要将它变成转移字符的方式:

      [0\-9]  // 通过 \ 将元字符 - 转译成普通字符
      [-0-9] | [0-9-]  // 将 - 放在 [后, 或者 ] 前
      
    • []^$都是元字符

      ^ 匹配字符串的开头
      [^asd]  // ^ 放在字符组中 [ 后后面,表示匹配除去 asd外的所有字符
      [a^sd] // ^ 放在字符组中的其它部位,就代表简单的 ^字符了
      /a\^d/  // 在字符组外必须要用转义字符 \^ 将 ^转义成普通字符
      
    • 表示所有任意字符

      [\s\S] 
      [\w\W]
      .   // 不包含 \n
      
  4. 字符组运算

    [aeiou] // 匹配元字符
    /a-z/ && /[^aeiou]/  // 匹配非元字符;使用合集
    

Copyright © 2024 妖娆的油条
Powered by .NET 9.0 on Kubernetes