正则表达式匹配出生日的问题

来源:3-4 正则表达式-3

amanionly

2018-01-03

import re
#line = "XXX出生于2001年6月1日"
#line = "XXX出生于2001/6/1"
#line = "XXX出生于2001-6-1"
#line = "XXX出生于2001-06-01"
line = "XXX出生于2001-06"
regex_str = ".*出生于(\d{4}[年/-]\d{1,2}([月/-]\d{1,2}|[月/-]$|$))"
match_obj = re.match(regex_str,line)
if match_obj:
    print(match_obj.group(1))

这样是可以匹配出来的


将 regex_str = ".*出生于(\d{4}[年/-]\d{1,2}([月/-]\d{1,2}|[月/-]$|$))"
中的[年/-]改成[年-/]就会报错,为啥阿?

写回答

1回答

冰山点水

2018-01-04

因为正则表达式中[]内的-一般表示从一个值到另外一个值,比如[1-9]表示的是1到9之间的所有数字。

2
3
amanionly
回复
冰山点水
明白了 谢谢 !
2018-01-04
共3条回复

Scrapy打造搜索引擎 畅销4年的Python分布式爬虫课

带你彻底掌握Scrapy,用Django+Elasticsearch搭建搜索引擎

5796 学习 · 6290 问题

查看课程