如果我有一個鬆散形式的輸入文件(當我說鬆散形式時,我的意思是並非所有行都包含所有信息,如後面所解釋的) :Python正則表達式分析多個可能存在也可能不存在的組的輸入
23 1990-10-10 Clark Kent
我想定義一組年齡,日期和名字,我怎麼去提取這些到一個名爲groupdict()如
{ age: 23, date: '1990-10-10', name: 'Clark Kent' }
如果字段年齡或日期缺失,如:
1990-10-10 Clark Kent
或
23 Clark Kent
的羣體應該還是可以被解析併爲它找不到領域返回None。
{ age: 23, date: None, name: 'Clark Kent' }
現在:
re.match(r'(?P<age>[0-9]+)?\s*(?P<birthday>\d\d\d\d\-\d\d\-\d\d)?\s*(?P<name>(\w|\s)+)',
"23 1990-10-10 Clark Kent")
返回所需的輸出。
然而當測試字符串是:
"1990-10-10 Clark Kent"
然後年齡參數抓住最初的199貪婪和生日不能正確解析。
你將如何去解析這個文件來允許抓取任何可以抓取的字段?
你可以分享HTML源代碼以及如何從中獲得'23 1990-10-10 Clark Kent'?通常正則表達式不是你需要從網頁上獲取數據... – Andersson