Python 的正则表达式

正则表达式,是查找文本的一种描述方法。例如, 一个正则表达式为 \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 语法,会让正则表达式更简洁。


总结如下:

  1. 使用 import re 导入正则表达式模块 。
  2. 使用 re.compile() 函数,并使用原始字符串语法,创建一个 Regex 对象 。
  3. 向 Regex 对象的 search() 方法传入想查找的字符串,得到一个 Match 对象 。
  4. 调用 Match 对象的 group() 方法,返回实际匹配的文本字符串。

发表评论