2010-06-17 7 views
0

Mac OS 10.6, projet Cocoa, 10.4 compatibilité requise.NSString simple correspondance de modèle

(S'il vous plaît noter que ma connaissance de regex est assez faible)

Je dois analyser NSStrings, pour les cas correspondant lorsque la chaîne contient une balise embarquée, où le format de l'étiquette est:

[xxxx]

xxxx sont des caractères aléatoires.

par exemple. "Le renard brun rapide aime bien".

Dans le cas ci-dessus, je dois saisir la chaîne « Foxy ». (Ou nul si aucune étiquette se trouve.)

Chaque chaîne n'aura une étiquette, et la balise peut apparaître n'importe où dans la chaîne, ou peut ne pas apparaître du tout.

Quelqu'un pourrait-il s'il vous plaît aider à une façon de le faire, de préférence sans avoir à inclure une autre bibliothèque, comme RegexKit. Merci pour toute aide.

+1

La réponse acceptée est pas vraiment général du tout. Avez-vous déjà trouvé un moyen de le faire avec quelque chose de similaire à regex? – elsurudo

Répondre

4

Je suggère quelque chose comme ce qui suit:

NSString *subString = nil; 
NSRange range1 = [myString rangeOfString:@"["]; 
NSRange range2 = [myString rangeOfString:@"]"]; 
if ((range1.length == 1) && (range2.length == 1) && (range2.location > range1.location)) { 
    NSRange range3; 
    range3.location = range1.location+1; 
    range3.length = (range2.location - range1.location)-1; 
    subString = [myString substringWithRange:range3]; 
} 
+1

Merci chrisbtoo! Tu es le vent sous mes ailes. :-) Juste trouvé une petite erreur à la ligne 6. devrait être: "range3.location = range1.location + 1". Bravo – SirRatty

+2

Bon endroit - mettra à jour pour l'avenir de tous les potes. – chrisbtoo

Questions connexes