我有以下格式Python的正則表達式匹配枚舉列表
string = 'Some text.\n1. first item\n2. second item\n3. third item\nSome more text.'
我想匹配的是子\n1. first item\n2. second item\n3. third item
,有效,在字符串中枚舉列表的Python字符串。對我而言,我做不是必然需要匹配第一個\n
。
我試過到目前爲止:
re.findall('\n.*\d\..*', req, re.DOTALL)
re.findall('\n.*\d\..*?', req, re.DOTALL)
第一種情況發現,我不希望文本的最後一行,和第二種情況沒有找到第3行的其餘部分。我面臨的關鍵困難是我不知道如何製作第一個貪婪(並通過換行符匹配),但是使第二個.*
只匹配一個換行符。
注意:枚舉字符串中的項數是未知的,所以我不能只匹配三個數字的行。它可以是任意數量的行。提供的字符串只是一個恰好有三個枚舉項的示例。
它是否必須匹配列表中的所有項目在一個大字符串或匹配每個項目,然後將每個項目添加到集合可接受? –
@LewsTherin我想後者是可以接受的,我只是希望一個正則表達式命令能夠處理這個問題,特別是我可以在單個字符串中匹配多個不同的枚舉列表。 – zephyr