[问题] match 全部大写且含空白的字串

楼主: hohiyan (海洋)   2015-03-31 05:09:07
使用的是 Python 3.4
字串格式如:
Ahearne M, 1999, INT J RES MARK, V16, P269, DOI 10.1016/S0167-8116(99)00014-2
字段是以逗号分隔,所以资料分别为 author, year, paper, volumn, page, doi
因为有些资料会缺字段(例如没有year或volumn...)
所以用 str.split(',') 的话可能会有不同笔资料字段不同的问题
paper 这个字段一定是全部都大写
因此想用正规式来抓取,但目前功力有限,
试了很久一直写不出有效的规则
请各位高手指教
作者: LPH66 (-6.2598534e+18f)   2015-03-31 08:50:00
re.search(",([A-Z ]+),",string).group(1) 这样?
楼主: hohiyan (海洋)   2015-03-31 10:41:00
谢楼上。可行,之后要再加工把前后的 , 移除掉就可以
作者: LPH66 (-6.2598534e+18f)   2015-03-31 13:08:00
.group(1) 就是抓出第一组 () 了, 应该不需要移掉逗号
作者: mars90226 (火星人)   2015-04-09 01:15:00
"(?<=,)[A-Z ]+(?=,)" 这样group(0)就直接是内容XD

Links booklink

Contact Us: admin [ a t ] ucptt.com