[英]Regex Group Multiple Occurrences
我有以下字符串要解析:
Field 1:Value 1 Overriden Field 2: Value 2.1 Value 2.2 Field 3: Value 3 Overriden Field 4:Value 4 Field 5:Value5
基本上,字段值對由冒號分隔,並且字段(並不總是以“ Field ...”開頭)從新行開始,后跟冒號。 我想提取覆蓋的字段-值對,所以我可以有兩個(或多個)字符串:一個為“覆蓋字段2:...值2.2”,另一個為“覆蓋字段4:值4”。
我不知道有多少個覆蓋字段,但是它們都以“ Overriden”開頭。 我不確定分組可以提供幫助。
我能想到的最好的方法是使用re.findAll()搜索“ Overriden [^:] :[^:] :?”的出現,因此我將得到兩個結果:
然后,我將必須截斷最后一部分“ \\ n [^:] *:”。 這看起來並不聰明。
任何人想提一些建議嗎?
您也許可以使用如下方式:
\s*([^:]+)\s*:\s*((?:[^:](?![^:\n]+:))+)\s*
[我放置\\s*
只是為了避免尾隨空格和/或換行符,可以在不更改要獲取的核心內容的情況下將其刪除]。
正則表達式開始於:
([^:]+):([^:]+)
然后,我將第二部分更改為((?:[^:](?![^:\\n]+:))+)
,確保同一行上沒有一個:
這意味着它將繼續進行)放在值頂部的字段中)。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.