【问题标题】:Regex not working and always detecting match正则表达式不起作用并始终检测匹配
【发布时间】:2013-11-23 00:28:00
【问题描述】:

请告诉我这个正则表达式有什么问题。我只需要字母,没有数字。

NSError *error = NULL;
NSRegularExpression *regex = [NSRegularExpression regularExpressionWithPattern:@"^(?!\\s*$)()[a-zA-Z,\\w,.\\s,-]{2,50}$"
                                                                       options:NSRegularExpressionUseUnicodeWordBoundaries
                                                                         error:&error];
NSUInteger numberOfMatches = [regex numberOfMatchesInString:text
                                                    options:0
                                                      range:NSMakeRange(0, [text length])];

if (numberOfMatches == 1) {
    return  nil;
} else {
    return NSLocalizedString(@"name.validation.alert1", nil);
}

提前致谢。

【问题讨论】:

标签: ios objective-c regex ios6


【解决方案1】:

在正则表达式中有一个.,它也允许一个数字。 请重新考虑像这样更改正则表达式:

^(?=\\S)()[A-Za-z\\s]{2,50}$

如果您可以在此处粘贴一些您评估的字符串,那就太好了。 您也可以在以下网站在线尝试您的正则表达式:regexpal.com 干杯。

【讨论】:

  • 不,还是同样的问题。以下没有错误:test1
  • 请在此处至少发布一个有效的正则表达式/字符串,这不会给您带来任何错误。
  • 也许这个正则表达式对你有用? ^(?=\S)()[A-Za-z\s]{2,50}$
  • 是的...我不想在开头有空格。 ^(?=\S)()[A-Za-z\s]{2,50}$ 按预期工作(不包括开头的空格)
  • 是的,它有效。在 obj-c 中,它的 NSRegularExpression *regex = [NSRegularExpression regularExpressionWithPattern:@"^(?=\\S)()[A-Za-z\\s]{2,50}$" 选项:NSRegularExpressionUseUnicodeWordBoundaries error:&error];
猜你喜欢
  • 1970-01-01
  • 2014-09-03
  • 1970-01-01
  • 1970-01-01
  • 2023-01-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多