我在中括号中加入点字符无法识别".*(\d{4}[年/-.]\d{1,2}([月/-.]\d{1,2}|[月/-.]$|$))"

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

剧毒碳酸0

2017-11-21

#_*_ coding: utf-8 _*_
__author__ = 'wangyh'
import re
#提取年龄
line = ["xxx出生于2011年11月11日","xxx出生于2012.11.01","xxx出生于1991/01/03",
        "xxx出生于2011-1-11","xxx出生于2011/11","xxx出生于2011-11"]
regex_str = ".*(\d{4}[.年/-]\d{1,2}([.月/-]\d{1,2}|[.月/-]$|$))"
for l in line:
        match_obj = re.match(regex_str,l)
        if (match_obj):
            print(match_obj.group(1))


写回答

1回答

剧毒碳酸0

提问者

2017-11-21

补充一下,点加入的位置不同对代码是有影响的。上述代码可以正常运行,但是改成

".*(\d{4}[年/-.]\d{1,2}([月/-.]\d{1,2}|[月/-.]$|$))"

就无法正常运行了

0
1
bobby
regex_str = ".*(\d{4}[年/\-.]\d{1,2}([月/\-.]\d{1,2}|[月/\-.]$|$))" 这个就可以了, 你需要搞清楚 - 在中括号中代表的含义 http://www.cnblogs.com/snandy/p/3662423.html 你可以看看这个文章
2017-11-23
共1条回复

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

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

5796 学习 · 6290 问题

查看课程