我使用 RegexKitLite 来匹配一些文本:
xxx* [abc] *xxx
我想匹配 [abc],并使用这个正则:
NSString *result = [@"xxx[abc]xxx" stringByMatching:@"\\[(.*)?\\]" capture:1];
然后,结果是 [abc]。但是,如果那里有换行符:
xxx[ab c]xxx
这行不通。我使用 ([\s\S]*),也不是数学 [abc]。我怎样才能匹配这个文本?谢谢你
我使用 RegexKitLite 来匹配一些文本:
xxx* [abc] *xxx
我想匹配 [abc],并使用这个正则:
NSString *result = [@"xxx[abc]xxx" stringByMatching:@"\\[(.*)?\\]" capture:1];
然后,结果是 [abc]。但是,如果那里有换行符:
xxx[ab c]xxx
这行不通。我使用 ([\s\S]*),也不是数学 [abc]。我怎样才能匹配这个文本?谢谢你
默认情况下.
不匹配新行。你可以使用
... stringByMatching:@"(?s:\\[(.*)?\\])" ...
// ^^^^ ^
或使用-stringByMatching:options:inRange:capture:error:方法提供RKLDotAll选项。
或者,您可以使用贪婪的变体
@"\\[([^\\]]*)\\]" // \[ ( [ ^\] ] ) \]