【问题标题】:NSRegularExpression is not correct workingNSRegularExpression 工作不正确
【发布时间】:2013-09-11 14:32:43
【问题描述】:

我需要你的帮助。 这里我写了部分代码,找不到,我的错误在哪里:

NSString *inputString =@"11111111111";
NSError *error = nil;
NSRegularExpression *regExpression = [NSRegularExpression regularExpressionWithPattern:@"[[a-zA-Z]]*"
                                                                          options:NSRegularExpressionCaseInsensitive error:&error];

NSUInteger numberOfMatches = [regExpression numberOfMatchesInString:inputString
                                                            options:0
                                                              range:NSMakeRange(0, [inputString length])];

NSLog(@"numberOfMatches=%d", numberOfMatches); 
// here shows  "numberOfMatches = 7"

但是在这里查看结果,答案是错误的! http://gskinner.com/RegExr/

所以问题:我的错误在哪里?

【问题讨论】:

  • 我们怎么知道这个?你没有告诉我们你的期望,所以我们无法知道正确的答案。
  • 我希望“inputString”应该是这样的:“abs qwer” 不能有任何数字,只有字母词。所以对于 inputString = @"111111" 的数学数应该为零。
  • 那我的答案应该和你想要的差不多,只是char类中少了空格。

标签: iphone ios objective-c regex nsregularexpression


【解决方案1】:

我不知道为什么你只得到 7 个匹配项,我认为应该有 12 个。你没有指定任何要求,所以我做了一些猜测:

问题是你的量词*。它匹配 0 个或更多,意味着 [[a-zA-Z]]* 如果找到 0 个字符(空字符串)也将匹配,并且将在每个数字之前和字符串末尾找到一个空字符串。

它可能会帮助您使用 + 量词,它匹配 1 个或多个。所以也许正则表达式 [a-z]+ 是你想要的。

顺便说一句。 [[a-zA-Z]]* 很可能是错误的,我想你想要[a-zA-Z]。另一件事是,当您使用options:NSRegularExpressionCaseInsensitive 时,您不需要在字符类中指定大小写字母,[a-z] 就可以了。

【讨论】:

    【解决方案2】:

    我认为您必须将正则表达式更改为[[a-z]*]

    【讨论】:

    • regularExpressionWithPattern: @"[[a-zA-Z]]*",我的错误在哪里?
    • @kokemomuke 一旦将@"[[a-zA-Z]]*" 更改为@"[[a-z]*]" 并检查
    【解决方案3】:

    如果你输入的是 1111,你可以试试这个...

    NSRegularExpression * regExpression = [NSRegularExpression 
    regularExpressionWithPattern:@"\\W-?1?[0-9]{2}(\\.[0-9]{1,2})?\\W"
                       options:0
                         error:&error];
    

    参考您可以访问here.

    【讨论】:

    • 我从服务器收到的正则表达式模式,并在gskinner.com/RegExr 中测试了该模式,所以一切都是正确的。问题是 NSRegularExpression 工作不正确。
    猜你喜欢
    • 2020-08-03
    • 2012-04-24
    • 2016-04-11
    • 2017-06-10
    • 2014-09-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多