极简python之正则表达式匹配结果

时启发 2024-05-25 10:16:06

当我们利用python re库的match或search方法,从输入字符串中查找字符串时,如果找到对应的结果,则返回值不为None,而是Match对象。

以查找日期为例,假定我们的需求是如果包含日期串,则将年月日提取出来,否则,返回None。

pattern串大致是这样的:

"^(?P<year>\\d{4})[年|\\.|-](?P<month>\\d{1,2})[月|\\.|-](?P<day>\\d{1,2})日?"

用语言描述的话,以4个数字开头表示年份,以年.-三种字符之一作为年月之间的分隔符,紧接着1或2个数字表月份,以月.-作为月和日的分隔符,然后是1-2位数字表日期,尾部可以有“日”这个汉字。

范例

sentence=input('请输入字符串:')

match=re.search("^(?P<year>\\d{4})[年|\\.|-](?P<month>\\d{1,2})[月|\\.|-](?P<day>\\d{1,2})日?",sentence)

if match:

# 把匹配找到的<year>、<month>、<day>三个命名部分存储到字典之中

result = match.groupdict()

print('您的输入是:' , int(result['year']), '年', int(result['month']),'月',int(result['day']),'日')

图1 带命名的正则表达式串

0 阅读:17

时启发

简介:读书笔记,编程经验,旅途见闻,人生感悟