2012-07-13 40 views
0

的比赛,我有以下的正则表达式匹配模式:倍数NSRegularExpression

NSString *pattern=[NSString stringWithFormat:@"%@(.*)%@", key, key2]; 

所以我们说if key=\\\\[\\\\\[ and key2=\\\\]\\\\]然后我得到包含与包含的文本沿 钥匙串。但问题是,如果有多个匹配,那么它只需要显示key2和key2的最后一个外观,并给出包含这些键和键之间的文本。例如:这是[[some]] [[text]]。这给了我:[[some]] [[text]]作为一个匹配,而我想[[some]][[text]]作为单独的匹配。我应该如何修改它以分开给所有比赛?

回答

1

困扰谁想要解析引号之间的字符串,并认为

\\".*\\" 

是足够的,但后来都惊讶新手解析器厂商在此匹配所有的文本同样的事情

"a string" and also "another string" 

背后的原因是*运营商是贪心。你必须使用的字符集的否定,达到了预期的结果:

\\[\\[[^\\[\\]]*\\]\\] 

希望这有助于。

+0

感谢您的帮助,但是您能否以我在问题中写的key和key2格式表达它,因为每个符号在您的表达中的角色对我而言都不清楚? – gamersoul 2012-07-13 10:23:53

+0

好吧,我懂了,现在工作。万分感谢。 – gamersoul 2012-07-13 10:28:56

+0

没问题,我很乐意帮助:) – 2012-07-13 10:56:18