普通字符:匹配每个普通字符对应的字符
In:re.findall('abc','abcfkabcjf')
Out:['abc','abc']
或关系(' | '):匹配|两侧任意的正则表达式即可
In:re.findall('com|cn','www.baidu.com|www.jd.cn')
Out:['com','cn']
匹配单个字符(' . '):匹配除换行外的任意一个字符
In:re.findall('aa.c','aatc,aavc,aarc')
out:['aatc','aavc','aarc']
匹配字符集(' [字符集] '):匹配字符集中的任意一个字符
[adjfgtyu]:表示[]中的任意一个字符
[0-9] [a-z] [A-Z] 表示区间内的任意一个字符
[_#0-9a-z] 混合书写,一般区间表达写在后面
In:re.findall('[aeiou]','How are you')
Out:['o','a','e','o','u']
匹配字符集反集(' [^字符集] '):匹配除了字符集以外的任意一个字符
In:re.findall('[^0-9]','Use 007 port')
Out:['U','s','e',' ',' ','p','o','r','t']
匹配字符串开始位置(' ^ '):匹配目标字符串的开头位置
In:re.findall('^tom','tom,hello')
Out:['tom']
匹配字符串结束位置(' $ '):匹配目标字符串的结尾位置
In:re.findall('tom$','hi,tom')
Out:['tom']
^和$必然出现在正则表达式的开头和结尾处.如果两者同时出现,则中间的部分必须匹配整个目标字符串的全部内容.
匹配字符重复
(' * '):匹配前面的字符出现0次或多次
In:re.findall('wo*','woooow')
Out:['woooo','w']
(' + '):匹配前面的字符出现1次或多次
In:re.findall('[A-Z][a-z]+','Hello World')
Out:['Hello','World']
(' ? '):匹配前面的字符出现0次或1次
In:re.findall('-?[0-9]','tom,age:14,-53')
Out:['14','-53']
(' {n} '):匹配前面的字符出现n次
In:re.findall('1[0-9]{10}','tom:13526854652')
Out:['13526854652']
(' {m,n} '):匹配前面的字符出现m-n次
In:re.findall('[1-9][0-9]{5,10}','tom:601751652')
Out:['601751652']
匹配任意(非)数字字符
\d 匹配任意数字字符 \D 匹配任意非数字字符
In:re.findall('\d{1,5}','mysql:3306,http:80')
Out:['3306','80']
匹配任意(非)数字普通字符
\s 匹配普通字符 \S 匹配非普通数字字符
In:re.findall('\w+','server_port = 8888')
Out:['server_port','8888']
匹配(非)单词的边界位置
\b 表示单词边界 \B 表示非单词边界
In:re.findall(r'\bis\b','This is a test')
Out:['is']
单词边界是指数字字母(汉字)下划线或其他字符的交界位置