您的位置:首页 > 编程语言 > Python开发

正则表达式与pythonRE库的使用

2017-06-17 16:10 337 查看

1-正则表达式

正则表达式(Regular Expression):用于一种语法格式简洁表达一组字符串。正则表达式在处理文本中非常有用,识别病毒,字符串匹配等等。

2-正则表达式常用操作符。

操作符作用
.用于表示一个任意的字符
[ ]表示一个在范围内的任意字符,例如[a-z]表示a-z的任意一个字符
[^]表示一个不在范围内的任意字符
*前一个字符0次或者无限次扩展,例如abc *表示ab或者abc或者abcc等等
+前一个字符1次或者无限次扩展
?前一个字符0次或者1次扩展
|
{m}表示扩展前一个字符(包括前一个)m次,例如ab{3}c表示abbbc
{m,n}表示扩展前一个字符m到n次
^表示字符串的开头,例如,^abc 表示为abc且是一个字符串的开头
$表示字符串的结尾,例如 abc$
( )分组标记,内部只能使用 | 符号,例如(abc | def)
\d表示数字0-9
\w表示符号A-Z,a-z,0-9

3-经典正则表达式

表示由26个字母组成的任意字符串,^和$表示字符串的首尾匹配,表明这个是用来表示匹配字符串

^[A-Za-z]+$


表示由26个字母和数字组成的任意字符串

^[A-Za-z0-9]+$


表示整数形式的字符串

^-?\d+$


使用了UTF-8编码表示中文字符

[\u4e00-\u9fa5]


4-Python标准库re库

功能函数函数参数函数作用
re.search()pattern,string,flag=0搜索待匹配字符串中第一个匹配的字符串
re.match()pattern,string,flag=0从待匹配的字符串的头开始匹配第一个匹配的字符串
re.findall()pattern,string,flag=0搜索字符串,以列表类型返回全部符合条件的子串
re.split()pattern,string,maxsplit=0,flag=0字符串匹配并分割
re.finditer()pattern,string,flag=0迭代匹配所有子串
re.sub()pattern,repl,string,count=0,flag=0将匹配到的字符串替换成指定字符串
参数解释

pattern表示正则表达式的字符串

string待匹配的字符串

flag控制标记,默认0,可选控制标记有:

- re.I 忽略大小写匹配

- re.M ^操作符是表示从字符串的开头开始匹配,使用了re.M的标记之后可以从每行的字符串开头开始匹配

- re.S .操作符默认匹配除换行符外的所有字符,使用该标记后,也适用于换行符。

maxsplit通俗的理解就是从字符串首部开始匹配出maxsplit个pattern,然后将匹配的这几个挖掉,原字符串就变成maxsplit+1份了。

repl用于替换匹配到的子串

count表示替换的最大个数,默认为0表示全部替换

5-re库使用技巧

5-1-调用两种方法:

简单调用

s = re.match(r'\d+','123abc')


面向对象调用

s = re.compile(r'\d+')
m = s.match('123abc')


5-2-匹配原则

贪婪匹配,匹配第一个符合条件且最长的字符串

ss = re.search(r'p.*y','psyxxy')


输出结果ss.group(0) = ‘psyxxy’

最小匹配,匹配第一个符合条件切最短的字符串

ss = re.search(r'p.*?y','psyxxy')


输出结果ss.group(0) = ‘psy’

**通过添加?操作符进行最小匹配和贪婪匹配切换
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: