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 三引号 用法 功能
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())
对于图片上述情况无法拆分。
出现了这种情况,找不到解决方法,暂且搁置