关于RegexKitLite linebreak

时间:2011-07-16 07:25:07

标签: objective-c line-breaks regexkitlite

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

XXX * [ABC] * XXX

我希望匹配[abc],并使用此常规:

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

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

XXX [AB C] XXX

它不起作用。 我用([\ s \ S] *),也不算数学[abc]。 我该如何匹配此文本? 谢谢

1 个答案:

答案 0 :(得分:0)

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

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

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

或者,你可以使用贪婪的变种

@"\\[([^\\]]*)\\]"   // \[  (  [ ^\] ]  )   \]