2011-12-21 1 views
1

Je voudrais savoir si la première lettre du dernier mot commence par Ampersand dans une valeur NSString en utilisant NSRegularExpression. J'ai utilisé l'expression suivante, mais elle montre le dernier mot correspondant même si l'esperluette se trouve n'importe où dans le dernier mot. S'il vous plaît me conseiller que comment puis-je y arriver. Merci.Comment trouver si le premier caractère du dernier mot d'une valeur NSString est Ampersand en utilisant NSRegularExpression?

 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; 
} 

Répondre

1

Essayez modèle "\\s[&]\\w+$". Il doit correspondre à des mots séparés par des espaces, par ex. foo &bar

+0

Wow, ça marche, merci. –

0

Essayez d'ajouter l'ancre "^" au début de votre regex:

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

Testé ce. Ça ne marche pas. – Jeremy

+0

Oui Ennuikiller, ça ne marche pas pour moi aussi. As-tu d'autres idées? Je vous remercie. –

Questions connexes