如何查找NSString值中最后一个单词的第一个字符是否是使用NSRegularExpression的Ampersand?

时间:2011-12-21 16:59:11

标签: iphone objective-c regex nsregularexpression

我想找到最后一个单词的第一个字母是否使用NSRegularExpression在NSString值中以Ampersand开头。 我使用了以下表达式,但它显示了最后一个单词匹配,即使&符号在最后一个单词中的任何位置。 请告诉我,我怎样才能实现它。 谢谢。

        BOOL flagSymbolFound = NO; 
NSError *error = NULL;
NSRegularExpression *regex = [NSRegularExpression regularExpressionWithPattern:@"[&]\\b\\w*$" options:NSRegularExpressionCaseInsensitive error:&error]; 
if(!error) { 
    NSUInteger numberOfMatches = [regex numberOfMatchesInString:stringValue options:0 range:NSMakeRange(0, [stringValue length])];
          if(numberOfMatches > 0) 
              flagSymbolFound = YES; 
          else 
              flagSymbolFound = NO; 
} 

2 个答案:

答案 0 :(得分:1)

尝试"\\s[&]\\w+$"模式。它应匹配空格分隔的单词,例如foo &bar

答案 1 :(得分:0)

尝试将“^”锚点添加到正则表达式的开头:

NSRegularExpression *regex = [NSRegularExpression regularExpressionWithPattern:@"^[&]\\b\\w*$" options:NSRegularExpressionCaseInsensitive error:&error];