正则表达式字符组/元字符/量词

时间:2021-09-19 18:46:54

一.正则表达式能干什么?

  1.从大段的文字中找到符合规则的内容

  2.判断某个字符串是否完全符合规则

二.字符组-- [] 写在中括号中的内容,都出现在下面的某一个字符的位置上都是符合规则的

   [0-9] 匹配数字
   [a-z] 匹配小写字母
   [A-Z] 匹配大写字母
   [a-zA-Z] 匹配大小写字母
   [a-zA-Z0-9] 匹配大小写字母+数字
   [a-zA-Z0-9_] 匹配数字字母下滑线

三.元字符

  \w 匹配数字字母下滑线 word关键字 [a-zA-Z0-9_]
  \d 匹配所有的数字 digit [0-9]
  \s 匹配所有的空白符 回车/换行符 制表符 空格 space [\n\t ]
  匹配换行符 回车 \n
  匹配制表符 tab \t
  匹配空格
  \W \D \S 和\w \d \s取反
  [\s\S] [\d\D] [\w\W]是三组全集 意思是匹配所有字符
  \b 表示单词的边界

四.和转义字母相关的 元字符
  \w \d \s(\n\t) \b \W \D \S

  ^ $

  ^ 匹配一个字符串的开始

  $ 匹配一个字符串的结束

  . 表示匹配 除换行符之外的所有字符

  [] 只要出现在中括号内的内容都可以被匹配

  [^] 只要不出现在中括号中的内容都可以被匹配

  有一些有特殊意义的元字符进入字符组中会回复它本来的意义 : . | [ ] ( )

  a|b 或 符合a规则的或者b规则的都可以被匹配

    如果a规则是b规则的一部分,且a规则比b规则要苛刻/长,就把a规则写在前面,将更复杂的\更长的规则写在最前面

  () 分组 表示给几个字符加上量词约束的需求的时候,就给这些量词分在一个组

五.量词

   {n}表示 这个量词之前的字符出现n次
   {n,} 表示这个量词之前的字符至少出现n次
   {n,m} 表示这个量词之前的字符出现n-m次
   ? 表示匹配量词之前的字符出现 0次 或者 1次 表示可有可无
   + 表示匹配量词之前的字符出现 1次 或者 多次
   * 表示匹配量词之前的字符出现 0次 或者 多次

六. 正则表达式的匹配特点 : 贪婪匹配
  它会在允许的范围内取最长的结果
  非贪婪模式/惰性匹配 : 在量词的后面加上?
     .*?x 匹配任意非换行符字符任意长度 直到遇到x就停止