re使得python支持了完整的正则表达式。
https://www.cnblogs.com/hello-wei/p/10181055.html
1. re.match(pattern, string, flags=0) 尝试从一个字符串的起始位置匹配一个模式,如果不是起始位置匹配成功的话,则返回None
2. re.findall(string[, pos[, endpos]])
3. re.sub(pattern, repl, string, count=0, flags=0) repl参数可以是一个函数,对所匹配到的字符串进行处理。
'(?P<name>...)' 其中?p后的name可以当作一个标签, 使用.group('name')来使用匹配到的字符串。
4. re.search(pattern, string, flags=0) 扫描整个字符串并返回第一个成功的匹配。
我们可以使用group(num) 或 groups() 匹配对象函数来获取匹配表达式。小括号就是我们圈中的想要得到的模式字符串。
在一个字符串前,加上r, 'r'是防止字符转义的 如果路径中出现'\t'的话 不加r的话\t就会被转义 而加了'r'之后'\t'就能保留原有的样子在字符串赋值的时候 前面加'r'可以防止字符串在时候的时候不被转义 原理是在转义字符前加'\',,在Python的string前面加上‘r’, 是为了告诉编译器这个string是个raw string,不要转意backslash '\' 。 例如,\n 在raw string中,是两个字符,\和n, 而不会转意为换行符。由于正则表达式和 \ 会有冲突,因此,当一个字符串使用了正则表达式后,最好在前面加上'r'。
'.' 匹配所有字符串,除\n以外 '-' 表示范围[0-9] '*' 匹配前面的子表达式零次或多次。要匹配 * 字符,请使用 \*。 '+' 匹配前面的子表达式一次或多次。要匹配 + 字符,请使用 \+ '*' 匹配前面的字符0次或多次 re.findall("ab*","cabc3abcbbac")结果:['ab', 'ab', 'a'] '?' 匹配前一个字符串0次或1次 re.findall('ab?','abcabcabcadf')结果['ab', 'ab', 'ab', 'a'] '{m}' 匹配前一个字符m次 re.findall('cb{1}','bchbchcbfbcbb')结果['cb', 'cb'] '{n,m}' 匹配前一个字符n到m次 re.findall('cb{2,3}','bchbchcbfbcbb')结果['cbb'] '\d' 匹配数字,等于[0-9] re.findall('\d','电话:10086')结果['1', '0', '0', '8', '6'] '\D' 匹配非数字,等于[^0-9] re.findall('\D','电话:10086')结果['电', '话', ':'] '\w' 匹配字母和数字,等于[A-Za-z0-9] re.findall('\w','alex123,./;;;')结果['a', 'l', 'e', 'x', '1', '2', '3']
常用表,凑齐自己的匹配模板。
unittest 的使用框架总结:
https://blog.youkuaiyun.com/weixin_42139375/article/details/83216648
unittest的基本使用方法总结:
http://c.biancheng.net/view/2679.html