Python3 re正则表达式(Regular Eexpression)
就是字符串处理工具,用来检索、替换符合需要的某个模式pattern的文本。
正则表达式简单的语法:
\ 匹配后面的字符
[]匹配包含的任一字符,逐个或者范围,[a-z]
* 匹配前一个字符>=0次,等效{0,}
+ 匹配前一个字符 >=1次,等效{1,}
? 匹配前一个字符0或1次,等效{0,1}
r 原始字符串,后面跟的就是原意,不再有转义
{m} 匹配前一个字符m次
\d 等效于[0-9]
\A 匹配字符串开头 如"\Axyz"匹配"xyz"
\Z 匹配字符串结尾 "abc\Z"匹配"abc"
(?P<name>...)分组,指定一个额外的别名。(?P<mix>abc)表示abc的别名为mix
\<number>引用编号为<number>的字符串
(?P=name)引用别名为name匹配的字符串
使用re模块
使用re模块的步骤是首先使用re.compile()函数,指定需要的模式pattern,
然后用模式pattern实例处理文本并获得匹配结果,最后进行其他操作。
pattern处理函数有以下几个:
re.search() 在字符串中搜索匹配表达式,返回match对象
re.match() 从字符串的起始位置匹配表达式
re.findall()搜索字符串,以列表类型返回匹配的子串
re.split() 将字符串按照匹配的结果进行分割,返回列表类型
re.finditer()搜索字符串,返回匹配的迭代类型,每个迭代元素是match对象
re.sub() 在字符串中替换匹配正则表达式的子串,返回替换后的字符串
实例:
import re
pattern = re.compile('[a-zA-Z]')
result = pattern.findall('as3SiOPdj#@23awe')
print result
# ['a', 's', 'S', 'i', 'O', 'P', 'd', 'j', 'a', 'w', 'e']