限定符

  1. a*:a 出现 0 次或多次
  2. a+:a 出现 1 次或多次
  3. a?:a 出现 0 次或 1 次
  4. a{3}:a 出现 3 次
  5. a{3,}:a 出现 3 次或以上
  6. a{3,6}:a 出现 3 到 6 次

或运算法

  1. (a|b):匹配 a 或者 b
  2. (ab)|(cd):匹配 ab 或者 cd

字符类

  1. [abc]:匹配 a 或者 b 或者 c
  2. [a-c]:同上
  3. [a-fA-F0-9]:匹配小写字母 a-f 或者大写字母 A-F 或者数字 0-9
  4. [^0-9]:匹配非数字

元字符

  1. \d:匹配数字,等价于 [0-9]
  2. \D:匹配非数字,等价于 [^0-9]
  3. \w:匹配字母、数字、下划线,等价于 [a-zA-Z0-9_]
  4. \W:匹配非字母、数字、下划线,等价于 [^a-zA-Z0-9_]
  5. \s:匹配空白字符
  6. \S:匹配非空白字符
  7. .:匹配除换行符以外的任意字符
  8. bword\b:匹配单词 word,\b 表示单词边界,即前后不是字母、数字、下划线的字符
  9. ^:匹配行首
  10. $:匹配行尾

贪婪 / 懒惰匹配

  1. <.+>:默认贪婪匹配 "任意字符"
  2. <.+?>:懒惰匹配 "任意字符"

贪婪就是尽可能的多匹配,贪⼼的意思;⽐如⽬标字符串 <span>a</span><span>b</span>,此时如果我们使⽤了贪婪量词 <span>.*</span> 则会匹配 <span>a</span><span>b</span>整个字符串,如果我们只想匹配第一对 span 标签,那么我们就需要使⽤懒惰量词 ?<span>.*</span>