限定符
限定字符(串)出现的次数,放在字符(串)后面
?
匹配零次或一次
*
匹配零次或多次
+
匹配一次或多次
{}
- {n} 匹配n次
- {n,}匹配大于等于n次
- {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"。