100例(正则表达式的妙用p028-----p032

import  re   #re是正则表达式模块


def date_is_right(date):
    return re.match("\d{4}-\d{2}-\d{2}",date) is not None


date1 = "2022-05-20"
date2 = "202-05-20"
date3 = "2022/05-20"
date4 = "20220520"
print(date1,date_is_right(date1))
print(date2,date_is_right(date2))
print(date3,date_is_right(date3))
print(date4,date_is_right(date4))

def date_is_right(date):
    return re.match("\d{4}-\d{2}-\d{2}",date)

Python 三引号 用法 功能

  • 作用二:多行注释
  • 作用一:用于字符串跨行,不必使用拼接符或换行符,直接使用三个引号即可
  • python的三个引号允许字符串跨多行使用,包括换行,TAB和任何其他特殊字符。 三个引号包括单引号和多引号

p033_re_search_prices

每一个括号()在正则表达式是分组的概念

使用match.groups获得所有的分组结果



content = """
小明上街买菜,
买了1斤黄瓜花了8元,
买了2斤葡萄花了16元,
买了5斤白菜花了5.64元。
"""
#要求提取(1、黄瓜、8) (2、葡萄、16) (5,、白菜、5.64)
import re
for line in content.split("\n"):
    pattern = r"(\d)斤(.*)花了(\d+(\.\d+)?)元"  #.*表示有很多字符;(\.\d+)?加了问号?表示(\.\d+)可有可无;\d+表示有很多数字
    # 每一个括号()在正则表达式是分组的概念
    match = re.search(pattern,line)
    if match:
        print(f"{match.group(1)}\t{match.group(2)}\t{match.group(3)}")
        print(match.groups())

 p034_re_phone_masalike

  • 目的:给手机号马赛克
  • 利用:re.sub
  • pattern用()加上了分组

  • \1 、\2  可以来引用前面对应的分组,可以达到部分替换的效果

我想在p029的基础上,给提取出来的手机号,进行马赛克 



content = """
    白日15129285161依山尽,黄河23456789876543入海流.
    欲穷2345678千里目,更上15991681017一层楼.
"""
import re

pattern = r"(1[3-9])\d{9}"
#results = re.findall(pattern, content)
#for result2 in results:
    #print(result2)

result = re.sub(pattern, r"\1******###", content)
print(result)
#print(results)

 p035_format_date_diversity

正则表达式对应的是一个模式,所有匹配的模式都会进行处理和转换。


#standard foemat:2021-03-04
content = """"
白日2021/09/30依山尽,黄河2021.03.24入海流。
欲穷千05-28-2020里目,更上一5/29/2021层楼。

"""
import re

content = re.sub(r"(\d{4})/(\d{2})/(\d{2})", r"\1-\2-\3", content)#\1 \2 \3 分别代表第一二三个分组
content = re.sub(r"(\d{4})\.(\d{2})\.(\d{2})", r"\1-\2-\3", content)#\1 \2 \3 分别代表第一二三个分组
#.代表任意字符,要进行转义\.
content = re.sub(r"(\d{2})-(\d{2})-(\d{4})", r"\3-\1-\2", content)#\1 \2 \3 分别代表第一二三个分组
content = re.sub(r"(\d{1})/(\d{2})/(\d{4})", r"\3-0\1-\2", content)#\1 \2 \3 分别代表第一二三个分组

print(content)

 p036_split_file_get_words

p014应用的只是空格 拆分法,content.split无法解决特殊符号(eg\ / .)的问题

import re
with open("./p014_article.txt", encoding="utf-8") as fin:
    content = fin.read()

print(content.split())

 

 

对于图片上述情况无法拆分。

出现了这种情况,找不到解决方法,暂且搁置

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值