Objective-C中的正则表达式搜索以#开头的字符串

时间:2012-07-03 07:40:13

标签: objective-c regex cocoa foundation

我的代码如下,但它不起作用。

NSString *regex = @"^#";

NSPredicate *regextest = [NSPredicate
                          predicateWithFormat:@"SELF MATCHES %@", regex];

if ([regextest evaluateWithObject:secondHalfString] == YES) {
    NSLog(@"Match!");
} else {
    NSLog(@"No match!");
}

有什么不对吗?

3 个答案:

答案 0 :(得分:1)

谓词中的

matches适用于整个字符串,所以为了获得你想要的东西,写下这样的正则表达式:

@"^#.*"

答案 1 :(得分:0)

请注意

The predicate format string syntax is different from the regular expression syntax.

on the Predicate documention

关于可可的正则表达式查看this answer

答案 2 :(得分:0)

如果您要查找以某个字符串开头的字符串,您应该使用@"SELF BEGINSWITH #"之类的字符串,它比使用正则表达式要快得多。