正则表达式,是查找文本的一种描述方法。例如, 一个正则表达式为 \d, 表示一位数字字符,即一位 0 到 9 之间的任意数字。
import re phone_num_regex=re.compile(r'\d\d\d\d-\d\d\d\d\d\d\d\d') mo=phone_num_regex.search('我的联系号码为: 0591-83822032.') print('查到的联系号码: '+mo.group())
运行结果:
查到的联系号码: 0591-83822032
我们对上述示例进行分析。
(1)导入正则表达式模块
Python 中所有正则表达式函数都在 re 模块中,所以我们首先将其导入。
import re
(2)创建正则表达式对象
向 re.compile() 传入一个字符串值,表示正则表达式,它将返回一个 Regex 模式对象。
phone_num_regex=re.compile(r'\d\d\d\d-\d\d\d\d\d\d\d\d')
(3)匹配 Regex 对象
接着, 把需要查找的字符串传入 Regex 对象的 search() 方法,寻找该正则表达式所定义的所有匹配。如果在该字符串中没有找到, 那么 search() 方法会返回 None。 如果找到, search() 方法会返回一个 Match 对象。 Match 对象有一个 group() 方法,通过它可以返回被查找字符串中实际匹配的文本。
mo=phone_num_regex.search('我的联系号码为: 0591-83822032.') print('查到的联系号码: '+mo.group())
(4)传递原始字符串
这里通过在字符串的第一个引号之前加上 r ,将该字符串标记为原始字符串。因为倒斜杠( \ ) 是 Python 中转义字符写法,我们必须使用 \\ ,才能打印出一个倒斜杠。所以使用 r 语法,会让正则表达式更简洁。
总结如下:
- 使用 import re 导入正则表达式模块 。
- 使用 re.compile() 函数,并使用原始字符串语法,创建一个 Regex 对象 。
- 向 Regex 对象的 search() 方法传入想查找的字符串,得到一个 Match 对象 。
- 调用 Match 对象的 group() 方法,返回实际匹配的文本字符串。