11

有人可以帮助我将 Regex 与 NSPredicate 一起使用吗?

NSString *regex = @"(?:[A-Za-z0-9])";
NSPredicate *pred = [NSPredicate predicateWithFormat:@"SELF MATCHES %@", regex];
if ([pred evaluateWithObject:mystring])
{
  //do something
}

使用 mystring 测试上述内容 - qstring123 似乎不起作用。我期待它进入 if 条件,因为它应该与正则表达式匹配。

此外,我需要一个允许逗号和空格的字母数字正则表达式。

这行得通吗?

@"(?:[A-Za-z0-9])*(?:,[A-sa-z0-9)*(?:\s[A-sa-s0-9])"

请帮忙。

4

1 回答 1

8

根据我的实验,它尝试将正则表达式与整个字符串进行匹配,并且不会在字符串内部匹配。

因此,正则表达式[a-zA-Z0-9]+有效,但[a-zA-Z0-9]无效。

考虑到这一点,您可能想要重新设计您的逗号匹配谓词,或者使用功能更全面的正则表达式解决方案,例如非常棒的RegexKit 和 RegexKitLite

于 2010-03-16T23:40:30.567 回答