173 votes

Expressions régulières dans une application Cocoa Objective-C

Initial Googling indique qu'il n'y a pas de façon intégrée de faire des expressions régulières dans une application Cocoa Objective-C.

Donc, quatre questions:

  1. Est-ce vraiment vrai?

  2. Vous plaisantez j'espère?

  3. Ok, alors est-ce qu'il y a une belle bibliothèque open-source que vous recommandez?

  4. Quelles sont les manières de se rapprocher suffisamment sans importer une bibliothèque, peut-être avec la classe NSScanner?

141voto

NesReqSej Points 2247

J’ai remarqué qu’à partir de l’iOS 4.0 Apple fournit une classe de NSRegularExpression. En outre, à partir de 10.7, la classe est disponible sous OS X.

42voto

mfazekas Points 3024
  1. Oui, il n'y a pas de regex de soutien dans le Cacao. Si vous êtes uniquement intéressé par booléen correspondant, vous pouvez utiliser NSPredicate qui prend en charge ICU syntaxe regex. Mais en général, vous êtes intéressé par la position du match ou de la position des sous-expressions, et vous ne pouvez pas obtenir avec NSPredicate.
  2. Comme mentionné, vous pouvez utiliser des regex POSIX fonctions. Mais ils sont considérés comme lents, et la syntaxe regex est limitée par rapport à d'autres solutions (ICU/pcre).
  3. Il y a beaucoup de OSS bibliothèques, CocoaDev a une longue liste.
  4. RegExKitLite par exemple, n'exige pas toutes les bibliothèques, il suffit d'ajouter le .m et .h à votre projet.

    (Ma plainte contre RegExKitLite est qu'il s'étend NSString via la catégorie, mais il peut être considéré comme une caractéristique trop. Aussi il utilise le non ICU bibliothèques fournies avec le système d'exploitation, ce qui n'est pas recommandé par Apple.)

19voto

avocade Points 718

RegexKit est le meilleur que j’ai trouvé encore. Très cacao : y. j’utilise la version « Lite » dans plusieurs de nos applications iPhone :

sourceforge

lingonikorg

12voto

Adam Wright Points 31715

Vous pouvez utiliser la bibliothèque d’Expressions régulières POSIX (Yay pour un système d’exploitation compatible POSIX). Essayez

8voto

Mark Caufman Points 159

Le bon marché et sale hack solution que j'utilise pour résoudre les REGEX et JSON l'analyse des problèmes est de créer une UIWebView objet et injecter du code Javascript de la fonction(s) d'en faire l'analyse. Le javascript de la fonction renvoie une chaîne de la valeur (ou une liste de valeurs) que j'aime. En fait, vous pouvez stocker une petite bibliothèque de fonctions personnalisées pour des tâches particulières, et puis il suffit d'appeler au besoin.

Je ne sais pas si cette technique des échelles d'énormes volumes de répété l'analyse des demandes, mais pour rapide transactionnel des trucs, il fait le travail sans fonction supplémentaire de ressources externes ou code vous risquez de ne pas comprendre.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X