[問題] 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