1. 限定符
? 表示前面的字符出现一次或零次。例:fe?->f fe
* 表示前面的字符可以出现多次或零次。例:ab*c -> ac abbbbc
+ 表示前面的字符出现一次以上。例:ab+c -> abc abbc
{} 表示精确匹配。 指定字符出现次数:a{6}c ->a出现6次;指定字符出现次数范围:a{2,6}c ->a可以出现次数在2次到6次之间;指定字符至少出现次数:a{2,}c ->a可以出现次数在2次以上
限定符只能匹配一个字符,当需要匹配多个字符时,使用括号进行包裹匹配多字符。
2. 或运算符 (|)
a cat|dog 匹配a cat或匹配dog
a (cat|dog) 匹配a cat或匹配a dog
3. 字符类
[] 表示匹配的内容只能是他们:[abc]+ -> 匹配的字符只能取自于a,b,c;指定字符范围:[a-z]+ -> 匹配所有的小写字符,[a-zA-Z]+ -> 匹配所有的英文字符,[a-zA-Z0-9] -> 匹配所有的字符和数字
^ 脱字符,表示匹配尖括号后规则以外的规则。[^0-9] -> 所有的非数字字符
4. 元字符
常用的字符类型称为元字符
\d 数字字符
\w 单词字符
\s 空白字符(tab符和换行符)
\D 非数字字符
\W 非单词字符
\S 非空白字符
.(英文句点) 任意字符,不包含换行符
^ 匹配后面字符,行首字符
$ 匹配前面字符,行尾字符
5. 贪婪匹配与懒惰匹配
匹配下面html的标签
贪婪匹配(默认):<.+> -> 匹配尖括号中的任意字符,但是英文句号匹配任意字符,会匹配尖括号。所有字符将会被匹配
懒惰匹配(使用?): <.+?> -> 将贪婪匹配转换为懒惰匹配。匹配标签