最新要闻
- 《流浪地球2》里的“硬核科技” 中国电信已经用上了
- 当前视讯!ChatGPT将英伟达AI GPU变成黄金 后者股价飙升超40%
- 《狂飙》带火鱼干店 老板:微信加烦了!剧中原来是这一集
- 当前焦点!Edge新版增加内容推荐按钮:打开甚至不用点
- 今日报丨比亚迪1月销量:汉卖出1.22万辆 宋Plus继续火爆
- 天天动态:车主展示特斯拉自动泊车入位 结果翻车:变成“自动撞车”
- 【天天速看料】价格暴降后特斯拉供不应求 马斯克:准备要涨了
- 宝能造车梦破碎:烧了80多亿元的观致 如今沦为法拍车
- 女孩4万多元的摩托 被男摩友加白糖报废!官方介入
- 全球即时:柔软顺滑 古今男士平角裤3条到手29.9元
- 世界视讯!休闲百搭 361° 运动束脚裤立减140元:49元起清仓价
- 环球速看:冰火两重天!四川一地昼夜温差38.6℃ 专家揭秘真相
- 今年开播有戏 “陈萍萍”演员吴刚回应《庆余年》第二季:很快了
- 奔驰被曝大砍产品线!19款车型或将淘汰 原因现实
- 环球视点!马斯克收费比微博狠多了:推特被曝企业“金V”认证付费:每月6770元
- 焦点热议:3年前旗舰也有份!中国广电剧透:小米10/青春版计划4月推送MIUI 14
手机
iphone11大小尺寸是多少?苹果iPhone11和iPhone13的区别是什么?
警方通报辅警执法直播中被撞飞:犯罪嫌疑人已投案
- iphone11大小尺寸是多少?苹果iPhone11和iPhone13的区别是什么?
- 警方通报辅警执法直播中被撞飞:犯罪嫌疑人已投案
- 男子被关545天申国赔:获赔18万多 驳回精神抚慰金
- 3天内26名本土感染者,辽宁确诊人数已超安徽
- 广西柳州一男子因纠纷杀害三人后自首
- 洱海坠机4名机组人员被批准为烈士 数千干部群众悼念
家电
10 正则表达式应用
所有文件为:
1、使用正则表达式将如下文字中合法的邮件地址输出。
“工作邮箱是:abc@123.com,生活中经常使用邮箱 abc@.com,个人邮箱:Python@123.com,工作顺利...”
(资料图片仅供参考)
# 按照邮件地址的格式(用户名@域名.后缀)来编写正则表达式
# 该正则表达式中包含了四个部分:
# 1. 用户名:由一个或多个字母、数字、下划线、点、减号组成,且必须以字母或数字开头(用于描述用户名的部分用小括号括起来)
# 2. @符号:该部分只包含一个@符号
# 3. 域名:由一个或多个字母、数字、下划线、点组成,且必须以字母或数字开头(用于描述域名的部分用小括号括起来)
# 4. 后缀:由一个或多个字母组成,且必须以字母开头(用于描述后缀的部分用小括号括起来)
# 在线正则表达式测试 https://tool.oschina.net/regex/?optionGlobl=global(所有邮箱可参考这个网址到这个撒哈拉沙漠输入邮箱地址可以 。查找出所有合法正确的邮件地址)
1 # 方法①2 import os3 import re4 5 text = "工作邮箱是:abc@123.com,生活中经常使用邮箱 abc@.com,个人邮箱:Python@123.com,工作顺利..."6 # 使用正则表达式查找所有合法的邮件地址7 email_addresses = re.findall(r"\b[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\.[A-Za-z]{2,}\b", text)8 # 输出查找到的邮件地址9 print("合法的邮件地址:", email_addresses)
1 # 方法② 2 import re 3 4 # 定义一个用于匹配邮件地址的正则表达式模式 5 pattern = r"\b[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\.[A-Za-z]{2,}\b" 6 # 定义要搜索的文本 7 text = "工作邮箱是:abc@123.com,生活中经常使用邮箱 abc@.com,个人邮箱:Python@123.com,工作顺利..." 8 # 使用findall()函数在文本中搜索所有符合正则表达式模式的字符串 9 results = re.findall(pattern, text)10 # 输出所有匹配到的邮件地址11 for result in results:12 print(result)
2. 网页中有一段字符串为:’sp>chl>个人信息 1811 * * * *589姓名:DingY,电话1871****111
①提取宇符串中标签里的内谷。
②提取其中所有的手机号。
1 import re 2 3 # 定义字符串 4 s = "p个人信息 18111234589
姓名:DingY,电话187111001111标签内的所有数据 6 info = re.search(r"(?<=).*(?=)", s) 7 print("span标签内的所有数据:") 8 print(info.group(0)) 9 # 提取所有手机号码10 phone = re.findall(r"1[34578]\d{9}", s, re.S)11 print("所有的手机号码:", phone)
3、文档中有一个记事本文件,文件名为out_2021.03.24.txt,使用正则表达式读取文件名中的日期时间信息,并找出这一天是周几。将文件改名为out_YYYY-MM-DD-W.txt (其中YYYY:四位的年,MM:两位的月份,DD:两位的日,W:一位的周几,并假设周一为一周第一天)。
1 filename = "out_2021.03.24.txt" 2 # 匹配年月日信息 3 pattern = re.compile(r"out_(\d{4})\.(\d{2})\.(\d{2})\.txt") 4 match = pattern.match(filename) 5 if match: 6 # 获取年月日信息 7 year = match.group(1) 8 month = match.group(2) 9 day = match.group(3)10 print("读取文件名中的日期时间信息:")11 print(f"year: {year}, month: {month}, day: {day}")12 # 计算这一天是周几13 date = datetime.date(int(year), int(month), int(day))14 print(f"weekday(这一天是周几): {date.strftime("%w")}")15 # 构造新的文件名16 new_filename = f"out_{year}-{month}-{day}-{date.strftime("%w")}.txt"17 # 修改文件名,新的文件名将会替代原来的文件名,并保存在当前目录下18 os.rename(filename, new_filename)19 print("修改后的文件名将会保存到当前目录下")
注意:先创建文件名为out_2021.03.24.txt文件
其中YYYY:四位的年,MM:两位的月份,DD:两位的日,W:一位的周几,并假设周一为一周第一
修改后的文件名将会替换并保存到当前目录下out_YYYY-MM-DD-W.txt,
运行代码的时候把红色框框中文件删除再运行,否则会报错
运行结果
输出日期的方法1 输出日期的方法 2 # import os 3 # import re 4 # from datetime import datetime 5 6 # 定义文件名 7 # filename = "out_2021.03.24.txt" 8 9 # 使用正则表达式解析文件名中的日期时间信息10 # result = re.match(r"out_(\d{4})\.(\d{2})\.(\d{2})\.txt", filename)11 12 # 将解析后的年、月、日信息转换为 datetime 对象13 # date = datetime.strptime(f"{result.group(1)}-{result.group(2)}-{result.group(3)}", "%Y-%m-%d")14 15 # 输出这一天是周几16 # print(date.strftime("%A"))
4、已有文件内容如附件个人信息所示,请使用正则表达式实现如下要求:
①提取所有日期
②提取所有 1996 年以前出生的信息
③重新排版,日期规范为“yyyy年M月d日”
④把所有1996年以前出生的年份改为1996
⑤提取生日格式:张伟的生日是11月15号
1 import re 2 3 name_date = "" 4 with open("name-date.txt", encoding="UTF-8") as f: 5 for l in f: 6 name_date += "".join(l.split("\n")) + "\n" 7 date = re.findall("\d{4}[年.-]?\d{1,2}[月.-]?\d{1,2}\S?", name_date) 8 # print("所有日期:") 9 # print(date)10 11 # 重新排版, 日期规范 为“yyy年M月d日”12 formatted_dates = re.sub("\s*(\S+)\s+(\d{4})[年.-]?(\d{1,2})[月.-]?(\d{1,2})\S?", r"\1 \t \2年\3日\4日\n", name_date)13 # print("\n重新排版后日期规范为:")14 # print(formatted_dates)15 16 # 提取所有 1996 年以前出生的学生17 born_before_1996 = re.findall("\S+\s+1\d{2}[0-5][年.-]?\d{1,2}[月.-]?\d{1,2}\S?", name_date)18 # print("\n1996年以前出生的信息:")19 # print(born_before_1996)20 21 # 把所有1996年以前出生的年份改为199622 birth_year_replace_pattern = re.compile(r"(19\d{2})年")23 replaced_text = birth_year_replace_pattern.sub("1996年", name_date)24 # print("\n把所有1996年以前出生的年份改为1996:")25 # print(replaced_text)26 # 提取生日格式27 # ① 由于 name_date.txt没有"张伟的生日是11月15号“匹配不到,所以可以把原文本“ 张伟 1996.11.15””改为“ 张伟 1996.8.24”28 pattern = r"(\w+)\s*:\s*(\d{4}).(\d{1,2}).(\d{1,2})"29 match = re.search(pattern, "张伟: 1996.11.15")30 if match:31 [name, year, month, day] = match.groups()32 # 转化为11月15日格式33 34 birthday_str = f"{month}月{day}日"35 # print("名字:", name)36 # print("生日:", birthday_str)37 38 # ② 可以直接创建文本内容 :text = "张伟的生日是11月15号"进行提取生日格式。39 text = "张伟的生日是11月15号"40 # 使用 findall() 方法搜索正则表达式的匹配项41 matches = re.findall(r"(\d{1,2})月(\d{1,2})号", text)42 # print("\n张伟的生日:")43 # print(matches)44 45 print("所有日期:")46 print(date)47 print("\n重新排版后日期规范为:")48 print(formatted_dates)49 print("\n1996年以前出生的信息:")50 print(born_before_1996)51 print("\n把所有1996年以前出生的年份改为1996:")52 print(replaced_text)53 print("名字:", name)54 print("生日:", birthday_str)55 print("\n张伟的生日:")56 print(matches)57 #@hfl
输出结果为:所有日期:["1996.11.15", "1993年10月21日", "1996年07月24日", "1996.3.21", "1996.12.0", "1996年07月05日", "1996.1.28", "1996年02月24日", "1996.5.28", "1996.10.26", "1993年1月6日", "1996.5.21", "1996年05月01日", "1996年04月14日", "1996.8.13", "1998年1月5日", "1996年08月21日", "1996年03月07日", "1996年03月18日", "1996年12月18日", "1995年5月7日"]重新排版后日期规范为:张伟 1996年11日15日王伟 1993年10日21日王芳 1996年07日24日李伟 1996年3日21日王秀英 1996年12日0日李秀英 1996年07日05日李娜 1996年1日28日张秀英 1996年02日24日刘伟 1996年5日28日张敏 1996年10日26日李静 1993年1日6日张丽 1996年5日21日王静 1996年05日01日王丽 1996年04日14日李强 1996年8日13日张静 1998年1日5日李敏 1996年08日21日王敏 1996年03日07日王磊 1996年03日18日李军 1996年12日18日刘洋 1995年5日7日 1996年以前出生的信息:["王伟 1993年10月21日", "李静 1993年1月6日", "刘洋 1995年5月7日"]把所有1996年以前出生的年份改为1996: 张伟 1996.11.15 王伟 1996年10月21日 王芳 1996年07月24日 李伟 1996.3.21 王秀英 1996.12.0 李秀英 1996年07月05日 李娜 1996.1.28 张秀英 1996年02月24日 刘伟 1996.5.28 张敏 1996.10.26 李静 1996年1月6日 张丽 1996.5.21 王静 1996年05月01日 王丽 1996年04月14日 李强 1996.8.13 张静 1996年1月5日 李敏 1996年08月21日 王敏 1996年03月07日 王磊 1996年03月18日 李军 1996年12月18日 刘洋 1996年5月7日 名字: 张伟生日: 11月15日张伟的生日:[("11", "15")]
name-date.txt
张伟 1996.11.15 王伟 1993年10月21日 王芳 1996年07月24日 李伟 1996.3.21 王秀英 1996.12.0 李秀英 1996年07月05日 李娜 1996.1.28 张秀英 1996年02月24日 刘伟 1996.5.28 张敏 1996.10.26 李静 1993年1月6日 张丽 1996.5.21 王静 1996年05月01日 王丽 1996年04月14日 李强 1996.8.13 张静 1998年1月5日 李敏 1996年08月21日 王敏 1996年03月07日 王磊 1996年03月18日 李军 1996年12月18日 刘洋 1995年5月7日
10 正则表达式应用
《流浪地球2》里的“硬核科技” 中国电信已经用上了
全球报道:超详细--redis在Linux环境搭建主从复制
当前视讯!ChatGPT将英伟达AI GPU变成黄金 后者股价飙升超40%
《狂飙》带火鱼干店 老板:微信加烦了!剧中原来是这一集
焦点报道:为什么 L1 正则化能做特征选择而 L2 正则化不能
Linux环境下:程序的链接, 装载和库[可执行文件的装载]
当前焦点!Edge新版增加内容推荐按钮:打开甚至不用点
今日报丨比亚迪1月销量:汉卖出1.22万辆 宋Plus继续火爆
当前头条:[数据结构] 哈希表 (开放寻址法+拉链法)
天天动态:车主展示特斯拉自动泊车入位 结果翻车:变成“自动撞车”
【天天速看料】价格暴降后特斯拉供不应求 马斯克:准备要涨了
热点评!迁移学习(HDAN)《Heuristic Domain Adaptation》
美团索命一问:一个SQL ,怎么分析加了哪些锁? 含4大场景、8个规则
宝能造车梦破碎:烧了80多亿元的观致 如今沦为法拍车
女孩4万多元的摩托 被男摩友加白糖报废!官方介入
读Java实战(第二版)笔记01_Java的变化
全球即时:柔软顺滑 古今男士平角裤3条到手29.9元
世界视讯!休闲百搭 361° 运动束脚裤立减140元:49元起清仓价
环球速看:冰火两重天!四川一地昼夜温差38.6℃ 专家揭秘真相
今年开播有戏 “陈萍萍”演员吴刚回应《庆余年》第二季:很快了
python的基础知识1
奔驰被曝大砍产品线!19款车型或将淘汰 原因现实
环球视点!马斯克收费比微博狠多了:推特被曝企业“金V”认证付费:每月6770元
焦点热议:3年前旗舰也有份!中国广电剧透:小米10/青春版计划4月推送MIUI 14
《流浪地球2》票房破32亿元 导演谈第3部:原班人马再来一遍
全球最资讯丨浙江台州最大汽车经销商老板跑路 旗下19家4S店全部关停
12.4万保时捷首单买家发声:保时捷答应优惠卖车
[数据结构] 树、森林的遍历
每日时讯!MAUI新生2.5-数据绑定和MVVM:MVVM的属性验证
当前速递!父亲借女儿3万压岁钱不还被起诉 法院:应还本金及利息
焦点观察:1万元!佳能入门级全画幅相机EOS R8规格曝光
世界微速讯:为S23让路!三星Galaxy S22京东秒杀:骁龙8小屏旗舰 3569元
环球微头条丨豆瓣8.1分!《三体》主创:能拍中国科幻大作 此生无憾
低代码平台前端的设计与实现(三)设计态画布DesignCanvas的设计与实现
热资讯!重庆一景区煮麻辣汤圆:下次元宵佳节还得等384天
男子打包螺蛳粉开车24小时运回北京 只因朋友圈一句话:这是真爱
【天天新视野】用户滑雪频繁触发iPhone车祸检测功能 苹果:已进行了优化 同时派代表考察
天天快播:甜品级游戏本价格已曝光:搭载RTX 4050/4060
环球消息!5 组合数据类型
今日讯!短记我的二十五岁,如落叶般随风飘荡。
世界观焦点:java基础:流程控制
女子春节连打4通宵麻将:患上突发性耳聋
国产显卡搞定“显卡杀手”:摩尔线程MTT S80居然能跑《孤岛危机》
【世界独家】极限挤牙膏!三星Galaxy S23系列用残血版LPDDR5X内存
世界微动态丨wireshark 抓包整理———— 从一个小案例开始 [一]
【全球热闻】游客洪崖洞花30元找当地大爷抄近道 只花2分钟:网友道出真相
速讯:博纳影业总裁妻子金巧巧否认暗指《满江红》排片多、不好看:个人喜好
颜值最高的白色手机来了!vivo X90告白下周预售:天玑9200加持
天天消息!Python教程:IO
零下10度静止一夜不掉电!“车主”盛赞恒驰5 OTA效果好
当前视点!java基础:java基础语法
大众也不香了!比亚迪ATTO 3获德媒超高认可:钟爱刀片电池
快资讯:CPU性能提升10%!13代酷睿笔记本测试数据出炉
【全球报资讯】盖茨向马斯克“泼冷水”:殖民火星完全浪费钱
世界新资讯:医生发现19岁阿尔兹海默症患者:已知最年轻
SQL SERVER——高可用技术概述
环球微头条丨用ChatGPT写作业?新算法给AI生成文本加水印:置信度高达99.999999999994%
快播:【Redis场景拓展】秒杀问题-全局唯一ID生成策略
美团一面:InndoDB 单表最多 2000W,为什么?小伙伴竟然面挂
每日精选:2个月没人管!AMD老显卡终于要有新驱动了
奢侈品不愁卖!LV将涨价20% 世界首富放言:中国人有钱
全球看热讯:Andlua+实现WakeUpOnline远程开机
Docker搭建本地私有仓库
世界即时:vue/ts 新建项目时好用的配置 【vite.config.ts、tsconfig.json、】
天天热点!大爷看《狂飙》入戏屏幕前举杯痛饮 被演技折服:口碑大剧结尾你满意吗?
厉害!中国半导体领域科研论文数量持续全球第一 光触媒等已超美国
【缓存策略及实践】前端如何配置 HTTP 缓存机制
全球简讯:为什么感觉工资过万很普遍了?打打字就能月入过万你心动吗?央视揭秘新骗局
《生化危机4:重制版》第五章演示:里昂和碍事梨合作通关
云南小女孩骑鸵鸟上学从容淡定 挡眼睛控制方向:网友调侃是大象年检了
观焦点:造车新势力轿车月榜Top2 长安深蓝SL03迎开门红:1月交付6137台
环球快消息!越野车开进古河床随意碾压:改装牧马人无视警示牌“撒野” 专家:保护有难度
天天微资讯!2899元价格屠夫!XiaoMI Book 12.4 二合一评测:办公追剧不在话下
微头条丨C盘扩容:不要轻易转换动态磁盘 Dynamic Disk
乳腺癌已成为全球第一大癌症:我国每年新增42万 比国外发病早
今日观点!投资不过山海关对东北伤害狠!老工业基地全力发展新能源车 专家称沈阳可成深圳
世界今热点:全球首位!以色列总统使用ChatGPT写演讲稿:开头、结尾感受下
全球看热讯:《角斗士2》明年上映
全球热点评!阿里云盘致歉:昨晚系统故障 全平台无法加载内容
TGA年度最佳!《双人成行》销量破1000万:双人游戏天花板
环球今日报丨特斯拉降价到20万出头 网友忍不住要下单 宝马奔驰大众:我们不跟
速递!腾讯视频官宣:《三体》番外剧《三体:大史》即将上线
2023年1月随笔
世界今日报丨大跃进了!今年小米新机都将抛弃USB 2.0
今日立春:二十四节气之首 万物开始复苏
8个你可能不知道答案的常见JavaScript面试问题
世界热资讯!荣耀北斗卫星通信专利获批通过 荣耀Magic5系列将首发?
B站《三体》动画“晚节不保”:即将跌破4分
全球实时:再也不怕手一抖跳广告了!规范App乱跳转新标准出台
热门:坚挺四年的苹果:栽了
关注:你以为你真的会玩《俄罗斯方块》?看完这些大神 我大悟了
UI通过元素定位实现特定区域截图
全球热推荐:2022浙江高考数学导数压轴解析
每日速讯:春节开特斯拉出行的国内车主真不少!自驾万里的数以百计
微头条丨开年如何选购生产力整机!锐龙9 7950X vs i9-13900K对比测试:谁是更好的创作工具?
【全球聚看点】客人泡茶放近50根藏红花吓坏主人 真大补药:喝完身体并没有不适
四川公司回应招聘“下班到点跑的绕道”:本职工作完成不用加班
世界今亮点!MySQL数据类型补充
当前资讯!Python中的关键字的用法