re 正则表达式的使用方法
re(regular expression)是编程语言中常用的处理字符串的高效工具。Python中自然包含这个模块,模块名为re
在Python使用正则表达式的时候,需要添加以下代码引用re模块:
import re
于代码开头 或引用文件之中
Pattern对象
正则表达式的模式Pattern:模式是一个字符串,好比一个筛子或者标尺,代表我们想要的字符串的特征。使用正则表达式的时候,我们将目标字符串与模式进行对比,符合模式的片段作为输出结果。
模式用compile方法建立,代码如下
p = re.compile(pattern) # pattern为按照正则表达式格式写的字符串。
例: p = re.compile('a') 则这个模式匹配为'a'的字符串内容
例: p = re.compile('a\d') 则这个模式匹配a紧接任何一个数字,如“a1”,"a0","a7"等。
例:p = re.compile('a.+z') 则这个模式匹配a接任何字符(至少一个)接z,如“a2z”,"awgvio=¥%gba13obw123nz"等
正则表达式的常用方法有match, search, fullmatch, sub, split, findall等。通过这些方法,正则表达式可以实现对字符串的匹配,检索,替换,分割等操作的功能。以下是这些方法的功能介绍:
match (匹配)从字符串的开头开始,匹配模式字符
fullmatch (整体匹配)用整个字符串对模式字符进行匹配
search (检索)搜索字符串中匹配正则表达式的第一处子字符串
sub 替换字符串中的匹配项
split 以模式字符串为分隔符分隔字符
findall 找到字符串中所有符合模式的元素
详细说明与实例
re.match(pattern, string, flags=0) 也可以使用 pattern.match(string[, pos[, endpos]])
--match方法返回结果为一个match对象
re.search(pattern, string, flags=0) 或 pattern.search(string[, pos[, endpos]])
--search方法返回结果为一个match对象
re.sub(pattern, repl, string, count=0, flag =0) 也可以使用 pattern.sub(repl, string, count=0)
--返回替换之后的结果字符串
re.findall(pattern, string, flags=0) 或pattern.findall(string[, pos[, endpos]])
--返回所有找到的元素组成的列表
Match对象,方法包括:
group() 返回匹配的字符串
start() 开始位置
end() 结束位置
span() 开始和结束位置
模式pattern的写法
\d Ascii模式:代表0-9中的一个数字字符
Unicode模式:代表任何一个Unicode目录中的十进制数字字符(不仅有0-9)
\D 匹配一个非\d的字符
\b 匹配一个单词开头或结尾,或匹配字符串开头与结尾
\B 匹配非\b的字符串
\s 匹配空白字符串,如[ \t\n\r\f\v]
\S 匹配非空白字符串
\w Ascii模式: ASCII字符中的数字和字母和下划线,就是 [a-zA-Z0-9_]
Unicode模式:表示可以构成词语的绝大多数字符
\W 非\w字符
. 匹配除了换行的任意字符
+ 前面的字符匹配1次或更多次
* 前面的字符匹配0次或多次
? 前面的字符匹配0次或1次
网友评论