1
TODO:使用正則表達式擊穿驅動Python的正則表達式多組
drives = "8:20-24,30,31,32,10:20-24,30,31,32"
最終輸出看起來就像這樣:
formatted_drives = [{8: [20,21,22,23,24,30,31,32]}, {10: [20,21,22,23,24,30,31,32]}]
這裏是正則表達式現在的樣子:
regex_static_multiple_with_singles = re.match(r"""
(?P<enc>\d{1,3}): # Enclosure ID:
(?P<start>\d+) # Drive Start
- # Range -
(?P<end>\d+) # Drive End
(?P<singles>,\d+)+ # Drive Singles - todo resolve issue here
""", drives, (re.IGNORECASE | re.VERBOSE))
什麼是返回:
[DEBUG ] All Drive Sequences: ['8:20-24,30,31,32', '10:20-24,30,31,32']
[DEBUG ] Enclosure ID : 8
[DEBUG ] Drive Start : 20
[DEBUG ] Drive End : 24
[DEBUG ] Drive List : [20, 21, 22, 23, 24]
[DEBUG ] Drive Singles : ,32
[DEBUG ] Enclosure ID : 10
[DEBUG ] Drive Start : 20
[DEBUG ] Drive End : 24
[DEBUG ] Drive List : [20, 21, 22, 23, 24]
[DEBUG ] Drive Singles : ,32
問題是驅動器單曲只返回最後一組。在這種情況下,有3個單個驅動器,但是它是一個可變數量。返回所有單個驅動器的最佳方法是什麼?
使用''和得到一個匹配之後,分割用'該值,'。 –
您是否正在考慮使用PyPi正則表達式模塊? –
謝謝,這是我需要的。只需使用're'模塊。 – JT1