0

我有以下正则表达式模式要匹配:

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

所以让我说if key=\\\\[\\\\\[ and key2=\\\\]\\\\]我得到包含键的字符串以及包含的文本。但问题是,如果有多个匹配项,那么它只需要 key 的出现和 key2 的最后出现,并为我提供包含在这些与键之间的文本。例如:这是 [[some]] [[text]]。这给了我:[[some]] [[text]]作为我想要的一场比赛[[some]][[text]]单独的比赛。我应该如何修改它以分别给出所有匹配项?

4

1 回答 1

1

同样的事情困扰着想要解析引号之间的字符串的新手解析器制造商,并认为

\\".*\\"

就足够了,但是当它匹配之间的所有文本时会感到惊讶

"a string" and also "another string"

这背后的原因是 * 运算符是贪婪的。您必须使用字符集否定来达到预期的结果:

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

希望这可以帮助。

于 2012-07-13T10:13:13.310 回答