python正则表达式实例

admin 38 0

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()`函数将第一个参数中匹配的字符串替换为第二个参数指定的字符串,在这个例子中,所有出现的"苹果"都被替换成了"橙子"。