Python 正则表达式高级应用指南

正则表达式是一种强大的文本模式匹配工具,在 Python 中,我们可以使用 re 模块来进行正则表达式的操作。以下是一些高级的正则表达式应用示例:

复杂的模式匹配

import re

text = “Hello, my email is example@example.com and my phone number is 123-456-7890.”
email_pattern = r’\b[A-Za-z0-9._%±]+@[A-Za-z0-9.-]+.[A-Z|a-z]{2,}\b’
phone_pattern = r’\d{3}-\d{3}-\d{4}’

emails = re.findall(email_pattern, text)
phones = re.findall(phone_pattern, text)

print(“Emails found:”, emails)
print(“Phones found:”, phones)
在上述代码中,我们定义了两个正则表达式模式:一个用于匹配电子邮件地址,另一个用于匹配电话号码。

分组和提取

import re

text = “The price of the product is $12.99.”
pattern = r’($\d+.\d{2})’

match = re.search(pattern, text)
if match:
price = match.group(1)
print(“Price found:”, price)
这里使用了分组来提取匹配的部分。

替换操作

import re

text = “Hello, World! How are you?”
pattern = r’World’
replaced_text = re.sub(pattern, “Python”, text)

print(“Replaced text:”, replaced_text)
通过 re.sub() 函数可以进行替换操作。

多行匹配

import re

text = “”"
Line 1: This is the first line.
Line 2: This is the second line.
Line 3: This is the third line.
“”"
pattern = r’Line \d+’

matches = re.findall(pattern, text, re.MULTILINE)
print(“Matches found:”, matches)
使用 re.MULTILINE 标志可以进行多行匹配。

贪婪与非贪婪模式

import re

text = “Title
pattern_greedy = r’<.>’
pattern_nongreedy = r’<.
?>’

match_greedy = re.search(pattern_greedy, text)
match_nongreedy = re.search(pattern_nongreedy, text)

print(“Greedy match:”, match_greedy.group())
print(“Non-greedy match:”, match_nongreedy.group())
演示了贪婪模式和非贪婪模式的区别。

正则表达式的应用非常广泛,可以根据具体的需求灵活运用这些高级技巧来处理各种文本模式匹配问题。

本文代码转自:https://www.wodianping.com/app/2024-10/48515.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值