? 前面的字符可出现0次或1次,即 0-1
* 前面的字符可出现0次或1次或多次,即0-n
+ 前面的字符可出现1次或多次,即1-n
^ 匹配开始位置
$ 匹配结束位置
1.所有大写和小写字母、所有数字、所有标点符号和一些其他符号
[xyz] 表示匹配xyz字符
[^xyz] 匹配除了xyz的字符
[0-9] 匹配数字
\d 匹配一个数字
\D 匹配一个非数字
[a-z] 匹配小写字母
[A-Z] 匹配大写字母
\w 匹配字母、数字、下划线,即[a-zA-Z0-9_]
2.特殊字符
. 匹配除了换行符 \n,\r的单个字符 即 [^\n\r]
\f 一个换页符
\n 一个换行符
\r 一个回车符
\s 任何空白字符,包括空格、制表符、换页符等等,等价于 [ \f\n\r\t\v]
\S 任何非空白字符 ,等价于 [^ \f\n\r\t\v]。
\t 一个制表符,等价于 \x09 和 \cI。
\v 一个垂直制表符,等价于 \x0b 和 \cK。
\ 下一个字符标记为或特殊字符、或原义字符、或向后引用、或八进制转义符。例如, 'n' 匹配字符 'n'。'\n' 匹配换行符。序列 '\\' 匹配 "\",而 '\(' 则匹配 "("。
() 一个子表达式的开始和结束位置
| 两项之间的一个选择
3.限定符 ?*+
下面n,m都是非负整数
{n} 匹配 n 次
{n,} 匹配至少n 次
{n,m} 匹配确定的 n到m次
匹配1-99整数
[1-9][0-9]?
4. 在+*?,后面加上?会变成最小匹配
字符:<h1>a wonderful day<h1>
<.*> 匹配结果 <h1>a wonderful day<h1>
<.*?>匹配结果<h1> 即加了?之后,可以取到最小匹配
wonderful day
\b 描述单词的前或后边界 \bwon 或者 ful\b 匹配wonderful
\B 表示非单词边界 \Bde 匹配字符串de,但是不会匹配 depend的de,因为是匹配单词的非边界
5.修饰符
g 全局匹配
i 忽略大小写
其余还有很多,在使用中熟悉即可