Python re替换正则表达式的部分内容

本文介绍了如何使用Python中的正则表达式对文本中的价格进行替换,展示了如何利用分组功能提取并保留价格,以及如何在替换时引用分组内容的实际示例。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

import re  
  
# 原始字符串  
text = "The price is $10.99 for item ABC123 and $20.45 for item DEF456."  
  
# 正则表达式模式,其中(\d+\.\d+)是将被替换的变化部分 
pattern = r'The price is $(\d+\.\d+)'  
  
# 替换函数,保留"The price",并将其替换为"PRICE_PLACEHOLDER"  
def replace_price(match):  
    return "The price is PRICE_PLACEHOLDER"  
  
# 使用re.sub和替换函数  
new_text = re.sub(pattern, replace_price, text)  
  
print(new_text)

#输出:The price is PRICE_PLACEHOLDER for item ABC123 and $20.45 for item DEF456.

如果想要在替换中引用分组的内容,可以在替换函数中使用match.group(n),其中n是分组的索引(从1开始)。例如,保留原始价格并在其前后添加一些文本:

def replace_price(match):  
    # 获取第一个分组(即价格)  
    price = match.group(1)  
    return f"The price is NEW_PRICE_{price}_PLACEHOLDER"  
  
new_text = re.sub(pattern, replace_price, text)  
  
print(new_text)

#输出:The price is NEW_PRICE_10.99_PLACEHOLDER for item ABC123 and $20.45 for item DEF456.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值