2. Python re模块
2.0 re.flags
- re.I 忽略大小写
- re.L 表示特殊字符集 \w, \W, \b, \B, \s, \S 依赖于当前环境
- re.M 多行模式
- re.S 即为 . 并且包括换行符在内的任意字符(. 不包括换行符)
- re.U 表示特殊字符集 \w, \W, \b, \B, \d, \D, \s, \S 依赖于 Unicode 字符属性数据库
- re.X 为了增加可读性,忽略空格和 # 后面的注释
2.1 re.match()
re.match 尝试从字符串的起始位置匹配一个模式,如果不是起始位置匹配成功的话,match()就返回none。
re.match(pattern, string, flags=0)
匹配成功re.match方法返回一个匹配的对象,否则返回None。
我们可以使用group(num) 或 groups() 匹配对象函数来获取匹配表达式。
匹配对象方法 | 描述 |
---|---|
group(num=0) | 匹配的整个表达式的字符串,group() 可以一次输入多个组号,在这种情况下它将返回一个包含那些组所对应值的元组。 |
groups() | 返回一个包含所有小组字符串的元组,从 1 到 所含的小组号。 |
实例
#!/usr/bin/python
import
re
line
=
"
Cats are smarter than dogs
"
matchObj
=
re
.
match
(
r
'
(.*) are (.*?) .*
'
,
line
,
re
.
M
|
re
.
I
)
if
matchObj
:
print
"
matchObj.group() :
"
,
matchObj
.
group
(
)
print
"
matchObj.group(1) :
"
,
matchObj
.
group
(
1
)
print
"
matchObj.group(2) :
"
,
matchObj
.
group
(
2
)
else
:
print
"
No match!!
"
以上实例执行结果如下:
matchObj.group() : Cats are smarter than dogs matchObj.group(1) : Cats matchObj.group(2) : smarter2.2 re.search()
re.search 扫描整个字符串并返回第一个成功的匹配。