常见字符
正则表达式对查找符合些复杂规则的字符是十分强大的,它是由一些元字符组成。元字符主要有四种作用:匹配字符,匹配数量,匹配模式,匹配位置
1. 元字符
下面介绍一些常见元字符
元字符 | 含义 |
---|---|
. | 匹配除换行符以外的任意字符 |
\b | 匹配单词的开始或介绍 |
\d | 匹配数字 |
\w | 匹配字母、数字、下划线或汉字 |
\s | 匹配任意空白符,包括空格、制表符(Tab)、换行符、中文全脚空格等 |
^ | 匹配字符串的开始 |
$ | 匹配字符串的结束 |
注:\b 是匹配单词,^,$匹配的是字符串。
2. 限定符
限定符 | 含义 |
---|---|
* | 重复零次或更多次 |
+ | 重复一次或更多次 |
? | 重复零次或一次 |
{n} | 重复n次 |
{n,} | 重复n次或更多次 |
{n,m} | 重复n次到m次 |
3. 反义
查找除了某一类字符之外的字符
代码 | 含义 |
---|---|
\W | 匹配任意不是字母、数字、下划线、汉字的字符 |
\S | 匹配任意不是空白符的字符 |
\D | 匹配任意非数字的字符 |
\B | 匹配不是单词开头或结束的位置 |
[^a] | 匹配除了a以外的任意字符 |
[^abcde] | 匹配除了a、b、c、d、e这几个字母以外的任意字符 |
[^(123|abc)] | 匹配除了1、2、3或者a、b、c这几个字符以外的任意字符 |
4. 懒惰限定符
语法 | 含义 |
---|---|
*? | 重复任意次,但尽可能少重复 |
+? | 重复1次或更多次,但尽可能少重复 |
?? | 重复0次或1次,但尽可能少重复 |
(n,m)? | 重复n到m次,但尽可能少重复 |
(n,)? | 重复n次以上,但尽可能少重复 |
懒惰限定符通常会尽可能匹配多个字符,在爬虫过程中,经常使用懒惰限定符中的*?