“正则表达式”笔记

元字符

  • .
      匹配任意单个字符(在绝大多数正则表达式引擎中不能匹配换行符)。

  • \
      1.代表转义字符。
      例:\. 此处的点不再匹配任意单个字符,而是代表字符“.”本身。
      同理\[\]此处提“[”、“]”也只是普通字符,而不再是正则表达式的元字符。
      如果要在正则表达式中匹配普通字符“\”,则要使用\\\\

任何一个元字符都可以通过给它加上一个反斜杠字符(\)作为前缀的办法来转义。
  配对的元字符(比如[或])不用作元字符时必须被转义,否则正则表达式分析器很可能会抛出一个错误。
  在一个完整的正则表达式里,字符“\”的后面永远跟着另一个(元)字符。
  (引用自人民邮电出版社《正则表达式必知必会(修订版)》,【美】Ben Forta著,杨涛等译)

2.也可以用“\”来匹配一些非打印字符,比如:
   (1)[\b]  匹配Backspace键(回退并删除一个字符)
   (2)\f   换页符
   (3)\n   换行符
   (4)\r   回车符
   (5)\t   制表符(Tab键)
   (6)\v   垂直制表符
   3.匹配任意一个数字:\d          等价于[0-9]
   4.匹配任意一个非数字:\D         等价于[^0-9]
   5.匹配任意一个字母、数字或下划线:\w   等价于[a-zA-Z0-9_]
   6.匹配任意一个非字母、数字或下划线:\W  等价于[^a-zA-Z0-9_]
   7.匹配任意一个非打印字符:\s       等价于[\f\n\r\t\v]
      说明:不包括\b
   8.匹配任意一个可打印字符:\S       等价于[^\f\n\r\t\v]
      说明:不包括\b
   9.匹配16进制:\x0A    对应ASCII字符10,等价于\n
   10.匹配8进制:\011    对应ASCII字符9,等价于\t

  • []
      1.“[”“]”之间是一个字符集合,代表可以匹配字符集合中的某一个字符。
      例:[0-9]a可以匹配“1a”、“2a”、“3a”……
      也可以写成[a-z0-9][A-Za-z0-9][abcdefghijklmnopqrstuvwxyz0123456789]
      2.当使用-连字符的时候,-后面的字符的ASCII值不能大于前面字符的ACSII值。

  • -
      连字符,只能在元字符“[”和“]”之间使用属于元字符,在“[”和“]”之外使用不属于元字符,只是普通字符普通字符“-”,具体使用方法见上面[]中的介绍。

  • ^
      1.取非匹配。
      例:[^0-9]a可以匹配“aa”、“ba”、“Ca”,但不能匹配“1a”、“2a”、“0a”,以此类推。
      2.^的效果作用于给定字符集合里的所有字符或字符区间,而不是仅限于紧跟在^字符后面的那一个字符或字符区间。
      例:[^0-9a-z]a代表匹配的结果中不能包括“0a”、“1a”、“2a”、“aa”、“ba”等,但可以包括“Aa”、“Ba”、“Ca”等。

你可能感兴趣的:(“正则表达式”笔记)