我正在尝试以非常自定义的格式解析文本文件中的数据。
Ronaldo : 1, Messi : 1, Owen,Beckham : 2, Mario|Terry : 1, Lampard,Pele : 3
这是文本文件中的内容,我使用正则表达式模式捕获它:([^\r\n\\s]*)\\s*:\\s*([^\r\n\\s]*) //objectiveC
as 键和值NSLog(@"%@ = %@", group1, growp2)
之间的简单捕获。:
Ronaldo = 1,
Messi = 1|2,
Owen,Beckham = 2
Mario|Terry = 1,
Lampard,Pele = 3
/*
`|` means "OR", Mario OR Terry = 1
`,` means "AND", Lampard AND Pele = 3
*/
我现在想将它们转换为以下内容NSArray
,对于我的生活,我对此一无所知。
array1 = ["Ronaldo=1" , "Messi=1" , "Owen,Becham=2", "Mario=1", "Lampard,Pele=3"]
array2 = ["Ronaldo=1", "Messi=1", "Owen,Becham=2", "Terry=1", "Lampard,Pele=3"]
刚刚发生的是,基于OR
or|
字符创建了两个数组。
因为Mario|Terry = 1
,我想要一组独立地包含两者的数组。
类似地,如果另一个集合中有三个选择Mueller|Hargreves|Anelka
,我应该有三个数组集合,每个集合,并且没有一个数组包含所有这些。
不知何故,我无法将它翻译成代码,到目前为止,我已经尝试了很多东西,但没有成功。复杂性如 for 循环一样出现。例如。
这是在[NSRegularExpression enumerateMatchesInString...]
代码块内
for(NSString *player in OptionalPlayerArray)
{
NSMutableArray *optionalarr =[NSMutableArray new];
for(NSString *value in valueChoices)
{
NSString *datastring = [NSString stringWithFormat:@"%@:%@",player,value]
[optionalarr addObject:[datastring]];
}
}
您会看到一个双 for 循环,valueChoices 数组还考虑了价值中的选择/选项。喜欢Lampard = 1|2
。
嵌套的 for 循环旨在与可选值相关。兰帕德= 1|2
。我认为这“也”很容易做到。我错了。所以请忽略嵌套循环,我可以没有可选值而完全专注于可选键:Lampard|Mario=1
。
但这让我无处可去。请让我知道我的选择是什么,也许是不同的正则表达式方法?任何帮助表示赞赏。