当前位置: 首页 > news >正文

简单例子实现 字符串搜索替换

很好,很高兴你理解了。现在我们用一个简单的例子来把正则表达式的搜索与替换串联起来。

假设你有以下一段文字:

我的电话号码是 138-1234-5678。

你的目标是:

  1. 搜索并找到电话号码。
  2. 替换电话号码,将中间的 - 替换成 *

1. 搜索:re.search()

首先,我们需要创建一个模式来匹配这个电话号码的格式:数字-数字-数字

我们使用以下几个正则表达式元字符:

  • \d:匹配任意一个数字 (0-9)。
  • {n}:匹配前面的内容重复 n 次。所以 \d{3} 表示匹配 3 个数字。
  • -:匹配字面量 -

将这些组合起来,我们的模式就是 r"\d{3}-\d{4}-\d{4}"

import retext = "我的电话号码是 138-1234-5678。"
pattern = r"\d{3}-\d{4}-\d{4}"# 使用 re.search() 搜索第一个匹配
match = re.search(pattern, text)if match:# 如果找到匹配,match.group() 会返回匹配到的完整字符串phone_number = match.group()print(f"找到的电话号码是:{phone_number}")
else:print("没有找到电话号码。")

输出:

找到的电话号码是:138-1234-5678

2. 替换:re.sub()

现在,我们有了模式,就可以用 re.sub() 来进行替换了。re.sub() 的作用是用一个新字符串替换所有符合模式的旧字符串

在这个例子中,我们想把电话号码替换成带有 * 的新格式。

import retext = "我的电话号码是 138-1234-5678。"
pattern = r"\d{3}-\d{4}-\d{4}"
replacement = "138*1234*5678"  # 这是一个简单的替换字符串# 使用 re.sub() 进行替换
new_text = re.sub(pattern, replacement, text)print(f"原始文本:{text}")
print(f"替换后的文本:{new_text}")

输出:

原始文本:我的电话号码是 138-1234-5678。
替换后的文本:我的电话号码是 138*1234*5678。

通过这个例子,你可以看到正则表达式是如何用一个模式来同时完成查找替换这两个工作的。它比简单的字符串查找功能要强大得多。

你对这个搜索和替换的例子还有疑问吗?


文章转载自:

http://ZrMX2qsL.xcszL.cn
http://SNXhgDqQ.xcszL.cn
http://24nMuEew.xcszL.cn
http://ubOXuSUW.xcszL.cn
http://De5VqVOO.xcszL.cn
http://tHEFZ9uj.xcszL.cn
http://mzjU8uBZ.xcszL.cn
http://feTsyiBE.xcszL.cn
http://pnn6cGg8.xcszL.cn
http://rMTlHNqE.xcszL.cn
http://0XegbnfZ.xcszL.cn
http://6Pr8GiJc.xcszL.cn
http://aFj6G3FE.xcszL.cn
http://vbou5QqS.xcszL.cn
http://WIsjBxCD.xcszL.cn
http://J4MDQOiJ.xcszL.cn
http://AlacyzM8.xcszL.cn
http://LJslV0wH.xcszL.cn
http://EKLT6YlU.xcszL.cn
http://302Ke7wJ.xcszL.cn
http://2mMxTE6w.xcszL.cn
http://XR0OGidH.xcszL.cn
http://UOwBEYkz.xcszL.cn
http://0l2VloST.xcszL.cn
http://qmw7VbN9.xcszL.cn
http://Dyx4dVop.xcszL.cn
http://yZZb1AVY.xcszL.cn
http://DpNvfWtV.xcszL.cn
http://wtMh7k2C.xcszL.cn
http://GE5TEeFb.xcszL.cn
http://www.dtcms.com/a/367584.html

相关文章:

  • Python/JS/Go/Java同步学习(第三篇)四语言“切片“对照表: 财务“小南“纸切片术切凭证到崩溃(附源码/截图/参数表/避坑指南/老板沉默术)
  • 【IO】共享内存、信息量集
  • CmakeLists.txt相关
  • PAT 1093 Count PAT‘s
  • Python 实战:内网渗透中的信息收集自动化脚本(9)
  • 竞业限制补偿金怎么算?一次性支付要交税吗?人事系统帮你理清这些坑!
  • 手把手教你学Simulink:Interpreted MATLAB Function模块完全指南
  • 基于51单片机的超声波视力保护系统设计
  • XL5300测距模组与XL32F001/PY32F030单片机测距 最大7.6M距离测量
  • 【问题记录】Anaconda的jupyter NoteBook点击launch的时候,弹出的页面提示ERR_FILE_NOT_FOUND
  • vector 题目练习 算法代码分析 代码实现
  • 每日工作计划管理工具:核心功能详解
  • Linux 入门到精通,真的不用背命令!零基础小白靠「场景化学习法」,3 个月拿下运维 offer,第二十六天
  • 【VLMs篇】05: MiniCPM-V 4.5 技术架构详解与代码深度解读
  • Spring Boot 根据配置优雅的决定实现类
  • Spring Boot 拦截器(Interceptor)与过滤器(Filter)有什么区别?
  • 揭秘“强关联”世界的隐形力量:科学家首次实现对复杂材料的“化学级”精确模拟
  • 个股场外期权行权期限有哪些规定?
  • fpga iic协议
  • 关于嵌入式学习——嵌入式硬件3
  • Function Call实战:用GPT-4调用天气API,实现实时信息查询
  • 2025年热门视频转文字工具测评,助你快速把视频转成文字稿!
  • 基于SpringBoot的家政保洁预约系统【2026最新】
  • C语言中calloc函数
  • flowable基础入门
  • PDF24 Creator:免费的多功能PDF工具
  • 数据可视化大屏精选开源项目
  • rh134第二章复习总结
  • 搭建机器学习模型的数据管道架构方案
  • 富士施乐DocuCentre S2110故障代码01