欢迎访问宙启技术站
智能推送

python正则表达式怎么使用

发布时间:2023-05-18 13:25:38

正则表达式是一种强大的文本处理工具,可以用来匹配、搜索和替换文本。在Python语言中,通过re模块提供了正则表达式的功能。

1. 基本语法

正则表达式是用一些特殊符号和字符组成的字符串,用来描述匹配的规则。下面是一些常用的正则表达式符号:

字符类型 说明

. 匹配任意字符

^ 匹配输入字符串的开始位置

$ 匹配输入字符串的结束位置

* 匹配前面的字符0次或多次

+ 匹配前面的字符1次或多次

? 匹配前面的字符0次或1次

{m} 匹配前面的字符m次

{m, n} 匹配前面的字符m到n次

在Python中使用正则表达式时,需要用re模块中的函数进行操作。下面是一些常用的函数:

函数名 说明

re.match(pattern, string) 尝试从字符串的起始位置匹配一个模式,返回一个match对象

re.search(pattern, string) 在字符串中查找匹配的模式,返回一个match对象

re.findall(pattern, string) 查找字符串中所有匹配正则表达式的字串,并返回一个list

re.sub(pattern, repl, string) 用repl替换字符串中所有匹配正则表达式的字串

2. 实例

现在我们来看几个正则表达式的实例。

1) 匹配数字

re.match(r'\d+', '123abc') # 返回一个匹配对象,长度为3,表示匹配上了'123'

re.match(r'\d+', 'abc123') # 返回None,表示没有匹配

re.findall(r'\d+', '123abc456') # 返回['123', '456'],表示字符串中找到了两个数字

在这个实例中,我们使用了\d+符号匹配字符串中的一个或多个数字。

2) 匹配邮箱地址

re.match(r'\w+@\w+\.com', 'test@example.com') # 返回一个匹配对象,表示匹配上了

re.match(r'\w+@\w+\.com', 'test@e.com.cn') # 返回None,表示没有匹配

在这个实例中,我们使用了\w+和\.符号匹配邮箱地址中的用户名、域名和后缀名。

3) 匹配电话号码

re.match(r'\d{3}-\d{8}|\d{4}-\d{7}', '010-12345678') # 返回一个匹配对象,表示匹配上了

re.match(r'\d{3}-\d{8}|\d{4}-\d{7}', '020-1234567') # 返回一个匹配对象,表示匹配上了

re.match(r'\d{3}-\d{8}|\d{4}-\d{7}', '010-1234567') # 返回None,表示没有匹配

在这个实例中,我们使用了\d{3}-\d{8}|\d{4}-\d{7}符号匹配电话号码中的区号和电话号码。这里需要注意的是,正则表达式中|符号表示或的关系。

4) 匹配IP地址

re.findall(r'\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}', '192.168.0.1 localhost') # 返回['192.168.0.1'],表示找到了一个IP地址

在这个实例中,我们使用了\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}符号匹配IP地址。其中\d{1,3}表示数字1到3次,\.表示匹配点号。

3. 总结

正则表达式是一种强大的文本处理工具,可以用来匹配、搜索和替换文本。在Python语言中,通过re模块提供了正则表达式的功能。使用正则表达式可以有效地简化文本处理操作,提高程序的效率和可读性。同时也需要注意正则表达式中的一些常见符号和函数,以免出现错误。