爬虫基础…
修饰符
| 修饰符 | 含义 | 描述 |
|---|---|---|
| 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])
