【问题标题】:about RegexKitLite linebreak关于 RegexKitLite 换行符
【发布时间】:2011-07-16 07:25:07
【问题描述】:

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

xxx*[abc]*xxx

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

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

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

xxx[ab c]xxx

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

【问题讨论】:

    标签: objective-c line-breaks regexkitlite


    【解决方案1】:

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

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

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

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-12-09
      • 1970-01-01
      • 1970-01-01
      • 2012-06-26
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多