正则表达式
正则表达式,通常写成regex,是用于识别正则字符串的,返回符合规定的字符串,正则字符串是可以用一系列线性规则构成的字符串。例如列了以下规则:
1.开头是字母‘a’;
2.结尾是字母‘b’;
满足上面两个规则的字符串可以是“azxczxcb”,也可以使"agfgfgb",满足的字符串可以有N多个,但字符串"bbb"就不满足,所以不会被匹配。
正则表达式包含了单个或多个“规则”,用各种符号字母来表示出来,以下是一些常用的正则表达式符号:
符号 | 含义 | 例子 | 匹配结果 |
---|---|---|---|
* | 匹配前面的字符,子表达式或者括号里的字符0次或多次 | a * b * | aaaaaa,bbbb,aaabbb |
+ | 匹配前面的字符,子表达式或者括号里的字符至少1次 | a+b+ | abbbb,ab,aaaab |
[ ] | 匹配中括号里的任意一个字符 | [A-Z] | A,B,C |
( ) | 表达式编组(括号中的会看成一个整体) | (ab)* | ab,abab |
{m,n} | 匹配前面的字符,子表达式或者括号里的字符m到n次 | a{2,3} | aa,aaa |
[^] | 取反,即匹配任意一个不在中括号中的字符 | [^A-z] | a,b |
| | 匹配任意一个用|分割的字符 | a|b|c | a,b,c |
. | 匹配任意一个单个字符 | a.c | abc,afc,agc |
\ | 转义字符 | \.\|\\ | .|\ |
\d | 匹配任何十进制数字(\D相当于\d的取反操作) | \d* | 151213,123456 |
\w | 匹配任何的字母数字字符(\W相当于\d的取反操作) | \w+ | 12asda,123ABC |
\s | 匹配任何空白字符空格,制表,回车(\S为\s的取反操作) | \s |
以上是比较常见的正则表达式中的符号及其含义,当我们通过爬虫获取一个文本文件时,想要再从中选取需要的部分,就可以使用正则表达式来帮助我们选取。
match
import re
str="abcd123456 789efgABC000"
pattern="\w+"
obj