正则表达式的使用
1.正则表达式介绍
#严格的字符匹配示例
import re
string = '1. A small sentence. - 2. Another tiny sentence. '
#查询
re.findall('sentence', string)
re.search('sentence', string)
re.match('1. A small sentence', string)
#替换
re.sub(pattern='small', repl='large', string=string)
re.sub(pattern='small', repl='', string=string)
In [ ]:
string = 'small smell smll smsmll sm3ll sm.ll sm?ll sm\nll sm\tll'
#能代表除换行符“\n”任意一个字符;
re.findall('sm.ll', string)
#被包含在中括号内部,任何中括号内的字符都会被匹配;
re.findall('sm[asdbf]ll', string)
re.findall('sm[a-zA-Z0-9]ll', string)
#转义字符\
re.findall('sm\.ll', string)
re.findall('sm[.\- ?]ll', string)
#该字符被视为OR操作
re.findall('small|smell', string)
re.findall('sm\wll', string)
In [ ]:
re.findall('sm..ll', string)
#匹配次数
re.findall('sm.{2}ll', string)
re.findall('sm.{1,2}ll', string)
re.findall('sm.{1,}ll', string)
re.findall('sm.?ll', string) # {0,1}
print(re.findall('sm.+ll', string)) # {0,}
print(re.findall('sm.*ll', string)) # {1,}
re.findall('sm\?ll', string)
In [ ]:
#使用正则表达式提取电话号码
import pandas as pd
rawdata = '555-1239Moe Szyslak(636) 555-0113Burns, C.Montgomery555-6542Rev. Timothy Lovejoy555 8904Ned Flanders636-555-3226Simpson,Homer5553642Dr. Julius Hibbert'
names = re.findall('[A-Z][A-Za-z,. ]*', rawdata)
tels = re.findall('\(?[0-9]{0,3}\)?[ \-]?[0-9]{3}[ \-]?[0-9]{4}', rawdata)
pd.DataFrame({'Names': names, 'TelPhone': tels})
2.参考文章
【创作不易,望点赞收藏,若有疑问,请留言,谢谢】
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律