爬虫基础…
修饰符
修饰符 | 含义 | 描述 |
---|---|---|
i | ignore | 不区分大小写 |
g | global | 全局匹配 |
m | multiline | 使边界字符 ^ 和 $ 多行匹配 |
s | . 中包含换行符 \n | . 匹配全部字符 |
元字符
字符 | 描述 |
---|---|
\ | 转义 |
^ | 匹配输入字符串的开始位置 |
$ | 匹配输入字符串的结束位置 |
* | 匹配前面的子表达式零次或多次{0,} |
+ | 匹配前面的子表达式一次或多次{0,} |
? | 匹配前面的子表达式零次或一次{0,1} |
{n} | |
{n,} | |
{n,m} | |
? | 当该字符紧跟在任何一个其他限制符 |
. | 匹配除换行符\n 之外的任何单个字符 |
| | 或 |
[xyz] | 字符集合 |
[^xyz] | 非字符集合 |
[a-z] | 字符范围 |
[^a-z] | 非字符范围 |
预定元字符
字符 | 描述 |
---|---|
\b | 匹配一个单词边界 |
\B | 匹配非单词边界 |
\d | 匹配一个数字字符。等价于 [0-9]。 |
\D | 匹配一个非数字字符。等价于 [^0-9]。 |
\f | 匹配一个换页符。等价于 \x0c 和 \cL。 |
\n | 匹配一个换行符。等价于 \x0a 和 \cJ。 |
\r | 匹配一个回车符。等价于 \x0d 和 \cM。 |
\s | 匹配任何空白字符,包括空格、制表符、换页符等等。等价于 [ \f\n\r\t\v]。 |
\S | 匹配任何非空白字符。等价于 [^ \f\n\r\t\v]。 |
\t | 匹配一个制表符。等价于 \x09 和 \cI。 |
\v | 匹配一个垂直制表符。等价于 \x0b 和 \cK。 |
\w | 匹配字母、数字、下划线。等价于[A-Za-z0-9_]。 |
\W | 匹配非字母、数字、下划线。等价于 ‘[^A-Za-z0-9_] |
非捕获元字符
字符 | 描述 |
---|---|
(?:pattern ) |
|
xxx(?=pattern ) |
匹配pattern但不捕获 |
(?!pattern ) |
匹配非pattern但不捕获 |
(?<=pattern )xxx |
匹配pattern但不捕获 |
(?<!pattern ) |
匹配非pattern但不捕获 |
python正则
re.match('www', 'www.runoob.com') #re.match(pattern, string, flags=0)
re.search('www', 'www.runoob.com') #re.search(pattern, string, flags=0)
re.sub(r'#.*$', "", "2004-959-559 # 这是一个国外电话号码")
#re.sub(pattern, repl, string, count=0, flags=0)
re.split('\W+', 'runoob, runoob, runoob.')
#re.split(pattern, string[, maxsplit=0, flags=0])