0

我很抱歉让其他人为我做这件事很烦人,但我已经尝试了一段时间,似乎无法获得一个有效的。这是它需要允许的:

  • 小写字母
  • 大写字母
  • 撇号 ( ')
  • 破折号 ( -)

对于将被拒绝的字符串,它们的顺序无关紧要,只要它不包含除上述字符之外的任何内容。如果这会影响正则表达式中的任何内容,则适用于objective-c。

NSString *nameRegEx = @"^[A-Z][a-zA-Z]+$";
NSPredicate *firstTest = [NSPredicate predicateWithFormat:@"SELF MATCHES %@", nameRegEx];
4

1 回答 1

2

对于正则表达式的“大写和小写字母、破折号和撇号”部分,请尝试:--

[a-zA-Z'\\-] 

如果您不打算依赖它在 [] 字符类中的某些句法位置,您需要转义 - 破折号。

在 Java 中,我们需要使用 \\ 双反斜杠——单反斜杠会将控制字符转义到编译器中,因此我们需要双反斜杠来让 \ 单反斜杠经过编译器以充当在正则表达式中转义。对你来说可能很相似。

希望这可以帮助。

于 2013-05-09T01:58:47.040 回答