0

我使用 RegexKitLite 来匹配一些文本:

xxx* [abc] *xxx

我想匹配 [abc],并使用这个正则:

NSString *result = [@"xxx[abc]xxx" stringByMatching:@"\\[(.*)?\\]" capture:1];

然后,结果是 [abc]。但是,如果那里有换行符:

xxx[ab c]xxx

这行不通。我使用 ([\s\S]*),也不是数学 [abc]。我怎样才能匹配这个文本?谢谢你

4

1 回答 1

0

默认情况下.不匹配新行。你可以使用

 ... stringByMatching:@"(?s:\\[(.*)?\\])" ...
//                      ^^^^           ^

或使用-stringByMatching:options:inRange:capture:error:方法提供RKLDotAll选项。

或者,您可以使用贪婪的变体

@"\\[([^\\]]*)\\]"   // \[  (  [ ^\] ]  )   \]
于 2011-07-16T07:35:12.700 回答