我有一個網址列表,我想解析:提取數字
['https://www.richmondfed.org/-/media/richmondfedorg/press_room/speeches/president_jeff_lacker/2017/pdf/lacker_speech_20170303.pdf','http://www.federalreserve.gov/newsevents/speech/powell20160929a.htm','http://www.federalreserve.gov/newsevents/speech/fischer20161005a.htm']
我想用一個正則表達式表達式來創建一個包含該號碼的新名單字符串的結尾和標點前的任何字母(某些字符串包含兩個位置的數字,如上面列表中的第一個字符串所示)。因此,新的名單看起來像:
['20170303', '20160929a', '20161005a']
這是我一直沒有運氣嘗試:
code = re.search(r'?[0-9a-z]*', urls)
更新:
運行 -
[re.search(r'(\d+)\D+$', url).group(1) for url in urls]
我收到以下錯誤 -
AttributeError: 'NoneType' object has no attribute 'group'
此外,它似乎不會像這樣會在數字後面接一個字母,如果有一封信。
也許['re.search(r'。* \ D(\ d \ w *)',s)'](https://regex101.com/r/gZpX4t/2)會做。 –
您可以試試'\ d [^ /。] *(?= \。\ w + $)' – horcrux