re模块:核心函数与方法
1.group和groups的区别:
n.group(N)返回第N组括号匹配的字符
n.group()==n.group(0)==返回所有匹配的字符
n.groups() 返回所有括号匹配的字符,以元组格式,没有子组的时候将返回 空元组
示例:
具体可见:https://blog.****.net/dingding_12345/article/details/52317476
2.re.match() :返回匹配的match对象,默认从给定字符串的开头开始匹配,即使正则表达式没有用^声明
match的属性:
.string 待匹配的文本
.re 匹配使用的pattern 对象
.pos 正则表达式搜索文本的结束位置
.endpos 正则表达式搜索文本的结束位置
具体见:https://blog.****.net/mmp591/article/details/78585244
3.re.search():返回匹配的match对象
search和match的区别:match函数是只检测re是不是在string的开始位置匹配,search会扫描整个string查找匹配,会扫描整个字符串,并返回第一个成功的匹配
4.注意点号 . 是不匹配换行符号\n 和非字符的,在确实要匹配. 号的时候,要使用\进行转义
5.简单的电子邮件的正则表达式: \[email protected]\w+\.com
6.匹配边界:\b \B 可以以border来记忆
举例:
\b 可以匹配单词边界,例如 'er\b' 可以匹配 nerver中的er。但是不能匹配 verb中的er
\B 匹配非单词边界。例如 'er\B' 可以匹配 verb中的er,但是不能匹配nerver中的er
7.findall()返回列表。如果findall没有找到匹配的部分就返回一个空列表,但是如果匹配成功。列表将包含所有成功的匹配部分
8.\s 是指空白,包括空格,换行,tab缩进等所有空白,而\S相反
9.findall和finditer
具体见:https://blog.****.net/wali_wang/article/details/50623991
10.sub和subn 实现搜索和替换的功能
其语法: re.sub(pattern, repl,string[, count])使用repl替换string中每一个匹配的子串后返回替换后的字符串,count用于指定最多替换次数,不指定时全部替换
re.subn(pattern,repl,string[, count])
其返回的是 sub(pattern, repl,string[, count]),替换次数
11.split()分割字符串
str.split()不支持正则和多个切割符号,不感知空格数量
12.扩展符号
具体见:https://blog.****.net/oliverkingli/article/details/78990912
13. \s\s+ :表示的是至少拥有两个以上的空白符