NSRegularExpression创建/转义错误

时间:2014-02-24 08:34:45

标签: regex cocoa-touch nsregularexpression

我想用NSRegularExpression创建以下正则表达式: 的 +(,|。| \ n | \ S)

其中任何一个或多个出现:逗号,句号(句点),新行,空格。

我尝试按如下方式创建NSRegularExpression

NSRegularExpression* regex = [NSRegularExpression regularExpressionWithPattern:@"+(,|.|\\n|\\s)" options:NSRegularExpressionCaseInsensitive error:&error];

重要的是:

regularExpressionWithPattern:@"+(,|.|\\n|\\s)"

class reference开始,有关于转义/引用的信息:

角色表达: \

说明:引用以下字符。必须引用被视为文字的字符是*? + [(){} ^ $ | \。 /

所以,我希望将.视为文字。我尝试了以下内容:

+(,|\.|\\n|\\s)
+(,|\\.|\\n|\\s)

以上所有工作; nil regex NSCocoaErrorDomain NSInvalidValueerror {{1}}的{​​{1}}。{/ p>

有谁能告诉我如何创建我想要的正则表达式?

感谢。

1 个答案:

答案 0 :(得分:1)

您可能将量词+放在错误的位置。在Regex的大多数实现中,量词通过后面的方式应用于组/字符,如下所示:

(,|\\.|\\n|\\s)+