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'}

 

posted on   思此狂  阅读(204)  评论(0编辑  收藏  举报

编辑推荐:
· 基于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保姆级教程

导航

< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5
点击右上角即可分享
微信分享提示