NSPredicate和Regex

Dav*_*ave 11 regex objective-c nspredicate

有人可以帮我使用Regex和NSPredicate吗?

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

测试上面的wth mystring - qstring123似乎不起作用.我期待它进入if条件,因为它应该匹配正则表达式.

此外,我需要一个正则数字的alpha数字允许逗号和空格.

这会有用吗?

@"(?:[A-Za-z0-9])*(?:,[A-sa-z0-9)*(?:\s[A-sa-s0-9])"
Run Code Online (Sandbox Code Playgroud)

请帮忙.

Dav*_*ong 8

从我的实验中,它试图将正则表达式与整个字符串匹配,并且在字符串内部不匹配.

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

考虑到这一点,您可能希望重写您的逗号匹配谓词,或使用功能更全面的正则表达式解决方案,如令人惊叹的RegexKit和RegexKitLite.

  • `*`匹配0次或更多次,`+`匹配1次或更多次. (2认同)