Python正则表达式实例
正则表达式,也称为regex,是一种强大的文本处理工具,在Python中,我们可以使用`re`模块来处理正则表达式,下面我们将通过一些实例来学习如何在Python中使用正则表达式。
**实例1:查找字符串中的数字**
如果我们想要从一段文本中找出所有的数字,我们可以使用正则表达式来实现。
import re text = "我有100个苹果和30个香蕉" numbers = re.findall(r'\d+', text) print(numbers) # 输出:['100', '30']
在这个例子中,`\d`代表一个数字,`+`表示前面的字符可以出现一次或多次,`\d+`可以匹配一个或多个连续的数字,`re.findall()`函数则用于在给定的文本中查找所有匹配这个模式的字符串。
**实例2:查找电子邮件地址**
正则表达式也可以用来查找电子邮件地址。
import re email = "我的邮箱是[example@example.com](mailto:example@example.com)" pattern = r'[\w\.-]+@[\w\.-]+\.\w+' match = re.search(pattern, email) if match: print("找到了一个电子邮件地址:", match.group()) # 输出:找到了一个电子邮件地址: example@example.com else: print("没有找到电子邮件地址。")
在这个例子中,`[\w\.-]+`匹配电子邮件的用户名部分,`@`是电子邮件地址中的@符号,`[\w\.-]+`再次出现来匹配域名部分,最后的`\.\w+`匹配常见的域名后缀,如.com、.org等。
**实例3:查找电话号码**
我们还可以使用正则表达式来查找电话号码。
import re phone_number = "我的电话号码是123-456-7890" pattern = r'\d{3}-\d{3}-\d{4}' match = re.search(pattern, phone_number) if match: print("找到了一个电话号码:", match.group()) # 输出:找到了一个电话号码: 123-456-7890 else: print("没有找到电话号码。")
在这个例子中,`\d{3}`表示连续的三个数字,`-`是电话号码中的连字符,`\d{3}-\d{3}-\d{4}`可以匹配常见的电话号码格式。
**实例4:替换字符串**
除了查找字符串,正则表达式还可以用来替换字符串中的内容。
import re text = "我喜欢吃苹果和香蕉。" new_text = re.sub(r'苹果', '橙子', text) print(new_text) # 输出:我喜欢吃橙子和香蕉。
在这个例子中,`re.sub()`函数将第一个参数中匹配的字符串替换为第二个参数指定的字符串,在这个例子中,所有出现的"苹果"都被替换成了"橙子"。