限定符

限定字符(串)出现的次数,放在字符(串)后面

?

匹配零次或一次

*

匹配零次或多次

+

匹配一次或多次

{}

  • {n} 匹配n次
  • {n,}匹配大于等于n次
  • {n,m}匹配[n,m][n,m]

或运算符|

(n|m)表示n或m任一存在即可

字符簇

[0-9]代表所有数字,[a-zA-Z]代表所有字母
[^0-9]代表非数字

元字符

元字符 含义(大写含义相反)
\d 数字字符
\w 字母,数字,下划线字符
\s 空格,换行符和制表符
. 任意字符(除换行符)
^ 匹配行首
$ 匹配行尾

贪婪与懒惰匹配

贪婪匹配

贪婪匹配尽可能多地匹配符合条件的字符串。这是正则表达式默认的匹配方式。
a.*b 应用于字符串 "axxbxxb" 时,会匹配从第一个 'a' 到最后一个 'b' 之间的整个部分,即 "axxbxxb"。

懒惰匹配

懒惰匹配尽可能少地匹配符合条件的字符串。
通常是通过在限定符后加上一个?来实现的。
正则表达式 a.*?b 应用于字符串 "axxbxxb" 时,会匹配从第一个 'a' 到第一个 'b' 之间的最短部分,即 "axxb"。