<name>name for the group</name><description>server-description</description><resource>10.1.1.1:*</resource><resource>10.1.1.2:*</resource><resource>10.1.1.3:*</resource><apply>selected</apply><network-connect-acl><<name>name2</name><description>description2/description><resource>10.2.2.0/26:*</resource><apply>selected</apply>
我已經轉換XML文件字符串輸入的值,並試圖搭上<resource>ABC</resource>
多次出現,我有以下的正則表達式 在python3定義正則表達式不捕獲所有組
regex = re.compile(r'(<name>.*?</name>)(.*?)(<resource>.*?</resource>)+')
print(regex.findall(string))
而是捕捉所有三個出現的,它只能轉換第一個:
('<name>name for the group</name>', '<description>server-
description</description>', '<resource>10.1.1.1:*</resource>')
我想正則表達式搭上弦之間和標籤。如果我們將上面的字符串作爲示例,我希望能夠看到這樣的內容;
<name>name for the group</name><resource>10.1.1.1:*</resource><resource>10.1.1.2:*</resource><resource>10.1.1.3:*</resource><name>name2</name><description>description2/description><resource>10.2.2.0/26:*</resource>
在這樣做時,我將與其相關聯的資源元素組「name」元素,使得通過此正則表達式匹配的第一個元組將包含這樣的:
('<name>nameforthegroup</name>','<resource>10.1.1.1:*</resource>
<resource>10.1.1.2:*</resource><resource>10.1.1.3:*</resource>')
和第二元組等堡將像這樣
('<name>name2</name>','<resource>10.2.2.0/26:*</resource>)
該文件包含了數百個這樣的記錄,但是當我運行代碼,我得到這樣的:
[('<name>nameforthegroup</name>', '<description>server-description</description>', '<resource>10.1.1.1:*</resource>'), ('<name>name2</name>', '<description>description2/description>', '<resource>10.2.2.0/26:*</resource>')]
歡迎SO。使用代碼片段是很好的,但首先你應該明確地顯示不僅正則表達式和希望的結果(你也不是很好),而是要匹配的文本。 – Gangnus
謝謝你,對不起的入口感到抱歉。我已更新它以提供更多解釋。 – tirexxerit