out = re.findall(r'\d+(?=abc)',"1abc") ## 只抽取数字,并且该数字后面跟的字符是"abc"
print(out)
out1 = re.findall(r'\d+(?!abc)',"1abf") ## 只抽取数字,并且该数字后面跟的字符是"abc"
print(out1)
out3 = re.findall("A(?:\d{1,2}月)?D", "啊啊A22月DtttADgggg") ## 目的是抽取以A开头和D结尾的字符串
print(out3)
运行结果:
[‘1’]
[‘1’]
[‘A22月D’, ‘AD’]
以此应用到日期的识别上:
## 2003年8、9月
## 2010年9、10、11月期间
re1 = "\d{4}年(?:\d{1,2}、)*\d{1,2}月(?:期间)?"
上面两种日期的写法都可以借用re1进行识别
## 2012年10月至2013年
## 2008年初至2009年6月27日
## 2011年中至2014年5月底
re2 = "\d{4}年(?:\d{1,2}月)?(?:\d{1,2}日)?(?:[初中末底])?至\d{4}年(?:\d{1,2}月)?(?:\d{1,2}日)?(?:[初中末底])?"
re2用于识别上面三种日期
参考文献:
http://tool.oschina.net/uploads/apidocs/jquery/regexp.html
https://blog.csdn.net/ledavince/article/details/80339009