python 正则
import re
#re.match(pattern, string, flags=0)
#flag 标志位,常用的re.I 忽略大小写匹配
#re.findall(r"jink",text,re.I)
text='''
11helloworld22
nimenhaoma
shanxishengweinanshi
tangyanluhello
'''
# 查找一个匹配项
# search match fullmatch
# search 查找任意位置匹配项
# match 必须从字符串开头匹配
# fullmatch 整个字符串与正则完全匹配 #只有python3
print re.search(r".*hello.*",text).group() # 11helloworld22
print re.match(r"nimen.*",text,re.I) ## None
print(re.fullmatch(r"hello","hello",re.I).group())
#output hello
# 查找多个匹配项
# findall 返回一个列表
# finditer 返回一个迭代器
print re.findall(r".*hello.*",text) #['11helloworld22', 'tangyanluhello']
print re.finditer(r".*hello.*",text) #<callable-iterator object at 0x0000000002F35FC8>
pattern=re.compile(r".*hello.*")
for i in pattern.findall(text):
print i
for i in pattern.finditer(text):
print i.group()
# 分割 split
for i in text.split("\n"):
print i
for i in re.split(r"\n",text):
print i
# str 本身支持split,支持不支持正则,
# 根据实际情况使用,以上两种输出情况一致。
#替换
#str 本身支持replace,如果指定替换次数N(第三个参数),则最多替换N个
name="jinkangkangello"
print name.replace("kang","wen") #jinwenwenello
print name.replace("kang","wen",1) #jinwenkangello
pattern=re.compile(r'kang')
#re.sub(pattern, repl, string, count=0, flags=0)
# repl 替换string 中被pattern 匹配的字符,count 表示最大替换次数
print re.sub(r'kang','wen',name) #jinwenwenello
print re.sub(r'kang','wen',name,1) #jinwenkangello
print pattern.sub('wen',name) #jinwenwenello
print pattern.sub('wen',name,1) #jinwenkangello
分组匹配 直接将匹配结果直接转为字典模式,方便使用。
res = re.search(r"(?P<name>k.*g$)",a).groupdict() print res #输出 {'name': 'kang'}
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· Vue3状态管理终极指南:Pinia保姆级教程