PHP前端开发

什么是python re.compile 函数?

百变鹏仔 15小时前 #Python
文章标签 函数

在这篇文章之中我们来了解一下关于python re.compile 的知识,有些朋友可能是刚刚接触到python这一编程语言,对这一方面不是特别的了解,但是没关系接下来这篇文章将会来带大家来了解关于python之中compile函数的相关知识。

 re.compile 函数

compile 函数用于编译正则表达式,生成一个正则表达式( Pattern )对象,供 match() 和 search() 这两个函数使用。

语法格式如下:

re.compile(pattern[, flags])

参数:

立即学习“Python免费学习笔记(深入)”;

pattern : 一个字符串形式的正则表达式

flags : 可选,表示匹配模式,比如忽略大小写,多行模式等,具体参数为:

re.I 忽略大小写

re.L 表示特殊字符集 w, W, , B, s, S 依赖于当前环境

re.M 多行模式

re.S 即为 . 并且包括换行符在内的任意字符(. 不包括换行符)

re.U 表示特殊字符集 w, W, , B, d, D, s, S 依赖于 Unicode 字符属性数据库

re.X 为了增加可读性,忽略空格和 # 后面的注释

实例如下:

&gt;&gt;&gt;import re&gt;&gt;&gt; pattern = re.compile(r'd+')                    # 用于匹配至少一个数字&gt;&gt;&gt; m = pattern.match('one12twothree34four')        # 查找头部,没有匹配&gt;&gt;&gt; print mNone&gt;&gt;&gt; m = pattern.match('one12twothree34four', 2, 10) # 从'e'的位置开始匹配,没有匹配&gt;&gt;&gt; print mNone&gt;&gt;&gt; m = pattern.match('one12twothree34four', 3, 10) # 从'1'的位置开始匹配,正好匹配&gt;&gt;&gt; print m                                         # 返回一个 Match 对象<_sre.sre_match>&gt;&gt;&gt; m.group(0)   # 可省略 0'12'&gt;&gt;&gt; m.start(0)   # 可省略 03&gt;&gt;&gt; m.end(0)     # 可省略 05&gt;&gt;&gt; m.span(0)    # 可省略 0(3, 5)</_sre.sre_match>

在上面,当匹配成功时返回一个 Match 对象,其中:

1.group([group1, …]) 方法用于获得一个或多个分组匹配的字符串,当要获得整个匹配的子串时,可直接使用 group() 或 group(0);

2.start([group]) 方法用于获取分组匹配的子串在整个字符串中的起始位置(子串第一个字符的索引),参数默认值为 0;

3.end([group]) 方法用于获取分组匹配的子串在整个字符串中的结束位置(子串最后一个字符的索引+1),参数默认值为 0;

4.span([group]) 方法返回 (start(group), end(group))。