? 会去匹配0个或1个字符,表示 ? 前面的字符可有可无。
* 会去匹配0个或多个字符,表示 * 前面的字符可以出现0次也可以出现多次。
+ 会去匹配1次以上的字符,表示 + 前面的字符出现1次及以上。
{} 可以指定字符出现的次数,表示 {} 前面的字符出现几次。
{} 也可以指定字符出现的次数范围,中间用 , 隔开。
下面表示出现的次数是2次及以上。
下面表示出现的次数是6次及以下。
用 () 匹配多个字符。
| 表示或者,在下面的例子中先去匹配a和空格,再去匹配后面的cat或者dog,如果不加括号就只能匹配出来dog了。
[] 表示匹配的字符只能取自它们。
[a-z]:所有的小写英文字符。
[a-zA-Z]:所有的英文字符。
[a-zA-Z0-9]:所有的英文字符和数字。
^ 表示脱字符,匹配 ^ 后面列出的以外的字符。
\d 数字字符(0-9)
\w 单词字符(英文+数字+下划线)
\s 空白字符(tab+换行符)
\D 非数字字符
\W 非单词字符
\S 非空白字符
\b 标注字符边界
. 任意字符(除换行符)
^ 匹配行首
$ 匹配行尾
贪婪匹配:尽可能多的匹配字符。
懒惰匹配:尽可能少的匹配字符。