re模块:核心函数与方法

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/DaenerysTargaryen/article/details/81127750

1.group和groups的区别:

n.group(N)返回第N组括号匹配的字符

n.group()==n.group(0)==返回所有匹配的字符

n.groups() 返回所有括号匹配的字符,以元组格式,没有子组的时候将返回 空元组

示例:

具体可见:https://blog.csdn.net/dingding_12345/article/details/52317476

2.re.match() :返回匹配的match对象,默认从给定字符串的开头开始匹配,即使正则表达式没有用^声明

match的属性:

.string 待匹配的文本

.re 匹配使用的pattern 对象

.pos 正则表达式搜索文本的结束位置

.endpos 正则表达式搜索文本的结束位置

具体见:https://blog.csdn.net/mmp591/article/details/78585244

3.re.search():返回匹配的match对象

search和match的区别:match函数是只检测re是不是在string的开始位置匹配,search会扫描整个string查找匹配,会扫描整个字符串,并返回第一个成功的匹配

4.注意点号 . 是不匹配换行符号\n 和非字符的,在确实要匹配. 号的时候,要使用\进行转义

5.简单的电子邮件的正则表达式: \w+@\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.csdn.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.csdn.net/oliverkingli/article/details/78990912

13.  \s\s+ :表示的是至少拥有两个以上的空白符

猜你喜欢

转载自blog.csdn.net/DaenerysTargaryen/article/details/81127750