python模块系列之-re

来源:互联网 发布:信捷plc编程电缆dvp 编辑:程序博客网 时间:2024/05/19 15:23

match

re.match(pattern, string[, flags])
第一个参数pattern表示正则表达式。
第二个参数string表示要匹配的字符串对象。

从首字母开始开始匹配,string如果包含pattern子串,则匹配成功,返回Match对象,失败则返回None,若要完全匹配,pattern要以$结尾。
也就是说string字符串是否是以pattern开头的。

re.search(pattern, string[, flags])
第一个参数pattern表示正则表达式。
第二个参数string表示要匹配的字符串对象。

若string中包含pattern子串,则返回Match对象,否则返回None,注意,如果string中存在多个pattern子串,只返回第一个。

match对象

match和search一旦匹配成功,返回一个match object对象,而match object对象有以下方法:

  1. group() 返回被 RE 匹配的字符串
    end() 返回匹配结束的位置 span()
    返回一个元组包含匹配 (开始,结束) 的位置 group()
    返回re整体匹配的字符串,可以一次输入多个组号,对应组号匹配的字符串。

a. group()返回re整体匹配的字符串,
b. group (n,m) 返回组号为n,m所匹配的字符串,如果组号不存在,则返回indexError异常
c.groups()groups() 方法返回一个包含正则表达式中所有小组字符串的元组,从 1 到所含的小组号,通常groups()不需要参数,返回一个元组,元组中的元就是正则表达式中定义的组。

findall

re.findall(pattern, string[, flags])
第一个参数pattern表示正则表达式。
第二个参数string表示要匹配的字符串对象。

finditer

re.finditer(pattern, string[, flags])
第一个参数pattern表示正则表达式。
第二个参数string表示要匹配的字符串对象。
第三个参数可选,
举个例子:

split

re.split(pattern, string[, maxsplit=0, flags=0])

sub

re.sub(pattern, repl, string[, count=0, flags=0])
第一个参数pattern表示正则表达式。
第二个参数repl表示要替换的字符串
第三个参数string表示准备要替换的原字符串
两个可选参数:count, flags
count:使用count来限定替换的个数(顺序为从左向右).默认值为0,表示替换所有的匹配到的结果。
flags是匹配模式,可以使用按位或’|’表示同时生效,也可以在正则表达式字符串中指定。
举个例子:

compile

compile(pattern[,flags] )

compile()函数会把一个表达式字符串转化成为一个返回一个pattern对象
*Pattern对象是一个编译好的正则表达式,通过Pattern提供的一系列方法可以对文本进行匹配查找。
Pattern不能直接实例化,必须使用re.compile()进行构造。
Pattern提供了几个可读属性用于获取表达式的相关信息:
pattern: 编译时用的表达式字符串。
flags: 编译时用的匹配模式。数字形式。
groups: 表达式中分组的数量。
groupindex: 以表达式中有别名的组的别名为键、以该组对应的编号为值的字典,没有别名的组不包含在内。*
1).re.I(re.IGNORECASE): 忽略大小写
2).re.M(MULTILINE): 多行模式,改变’^’和’$’的行为
3).re.S(DOTALL): 点任意匹配模式,改变’.’的行为
4).re.L(LOCALE): 使预定字符类 \w \W \b \B \s \S 取决于当前区域设定
5).re.U(UNICODE): 使预定字符类 \w \W \b \B \s \S \d \D 取决于unicode定义的字符属性
6).re.X(VERBOSE): 详细模式。这个模式下正则表达式可以是多行,忽略空白字符,并可以加入注释

原创粉丝点击