[英]Regex to match repeating groups in python
我有一个country.txt文件,其中包含以下示例文本:
[Country "Kenya"]\n[CapitalCity "Nairobi"]\n\n
[Country "Uganda"]\n[CapitalCity "Kampala"]\n\n
[Country "Tanzania"]\n[CapitalCity "Dodoma"]\n\n
该国家最多可以有20个属性。 为了简单起见,我仅包括Country和CapitalCity。 我需要一个可在python中工作的正则表达式,以返回上面的示例数据:
a) n matches, in the above case n=3
b) Each match should have m groups, in this case m=2: Country and CapitalCity
我已经阅读了https://www.regular-expressions.info/captureall.html,但似乎无法使它适用于我的用例。
我已经试过了
(\[([A-Za-z]+)\s\"([^\"]*)\"\]\\n\\n)+
在这里https://regex101.com/r/cujIDd/1,但它没有给我国家。
编辑 :预期的输入和输出
示例1:输入
[Country "Kenya"]\n[CapitalCity "Nairobi"]\n\n
[Country "Uganda"]\n[CapitalCity "Kampala"]\n\n
[Country "Tanzania"]\n[CapitalCity "Dodoma"]\n\n
预期产量
matches: 3
match 1: Country: Kenya
CapitalCity: Nairobi
match 2: Country: Uganda
CapitalCity: Kampala
match 3: Country: Tanzania
CapitalCity: Dodoma
示例2:输入
[Country "Kenya"]\n[CapitalCity "Nairobi"]\n[President "Kenyatta"]\n\n
[Country "Uganda"]\n[CapitalCity "Kampala"]\n[President "Museveni"]\n\n
[Country "Tanzania"]\n[CapitalCity "Dodoma"]\n[President "Magufuli"]\n\n
预期产量
matches: 3
match 1: Country: Kenya
CapitalCity: Nairobi
President: Kenyatta
match 2: Country: Uganda
CapitalCity: Kampala
President: Museveni
match 3: Country: Tanzania
CapitalCity: Dodoma
President: Magufuli
示例3:输入
[Country "Kenya"]\n[CapitalCity "Nairobi"]\n[President "Kenyatta"]\n[Continent "Africa"]\n\n
[Country "Uganda"]\n[CapitalCity "Kampala"]\n[President "Museveni"]\n[Continent "Africa"]\n\n
[Country "Tanzania"]\n[CapitalCity "Dodoma"]\n[President "Magufuli"]\n[Continent "Africa"]\n\n
预期产量
matches: 3
match 1: Country: Kenya
CapitalCity: Nairobi
President: Kenyatta
Continent: Africa
match 2: Country: Uganda
CapitalCity: Kampala
President: Museveni
Continent: Africa
match 3: Country: Tanzania
CapitalCity: Dodoma
President: Magufuli
Continent: Africa
你得到了流
您可能会使用类似于以下内容的东西:
regex = r"^[^\"]*\"(\w+)\"[^\"]+\"(\w+)\"[^\"].*"
subst = "\\1, \\2"
result = re.sub(regex, subst, test_str, 0, re.MULTILINE)
if result:
print (result)
输出 :
Kenya, Nairobi
Uganda, Kampala
Tanzania, Dodoma
范例 :
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.