2012-01-19 3 views
2

J'utilise regexkitlite pour valider des données dans mon application iPhone dans xcode.Comment utiliser regex pour mettre des guillemets autour d'une instruction

Je fais un appel api qui envoie un résultat JSON de:

"taskDate": newDate("September 23, 2011 00:00:00") 

Comment utiliser regex pour le convertir en:

"taskDate": "newDate("September 23, 2011 00:00:00")" 

Je veux entourer la valeur de chaque " taskdate "avec des guillemets.

Edit: Ajout de commentaire OP

Voici ce que je suis en utilisant:

[resultString replaceOccurrencesOfRegex:@"new Date((.*?)\")," withString:@"\"\"," range:NSMakeRange(0, [resultString length])]; 

où ResultString est la chaîne contenant la "nouvelle date (...."

Répondre

1
Vous

peut utiliser regex pour identifier où dans votre texte vous avez du texte dans le format de "taskDate": "newDate (" September 23, 2011 00:00:00 ")" mais le remplacement réel, vous devrez écrire vous-même. t remplacer les chaînes, il trouve des motifs w dans une chaîne. Maintenant, afin de trouver le modèle de "taskDate": newDate("<anything can go here>") vous pouvez utiliser

"taskDate"\: newDate\(".*?"\) 

S'il est possible d'avoir quelque chose d'autre dans la parenthèse, vous devrez être plus précis et indiquez uniquement une date à l'intérieur:

"taskDate"\: newDate\("[a-zA-z]* \d{2}, \d{4} \d{2}\:\d{2}\:\d{2}"\) 

Cela correspondra à tout ce qui est du type "taskDate"\: newDate\("Letters 00, 00:00:00"\). De là, vous pouvez soit rendre les mois spécifiques, et permettre un espace blanc entre toutes les citations. Tous ces changements rendent l'expression rationnelle plus complexe, il faut donc la rendre plus stricte pour éviter de faire correspondre des choses que vous ne voulez pas. S'il n'y a pas de scénario où quelque chose d'autre peut être dans la parenthèse, j'irais avec la première regex. Cela dit, après avoir fait correspondre la chaîne dans votre contenu, vous devez écrire le code pour l'entourer avec les citations.

+0

J'ai remarqué que vous avez mentionné que regex ne remplace pas les chaînes. J'utilise regexkitlite pour iOS, et il a une fonction "replaceoccurencesofregex". Voici ce que j'utilise: [resultString replaceOccurrencesOfRegex: @ "new Date ((* *?) \"), "WithString: @" \ "\", "plage: NSMakeRange (0, [longueur de la chaîne de résultat])] où resultString est la chaîne contenant la "nouvelle Date (...." – bakwarte

+0

Je ne suis pas familier avec regexkitlite ou avec iOS en général :) Ensuite, utilisez la fonctionnalité de remplacement qu'il a avec l'expression régulière que j'ai écrite. vous avez besoin de plus d'aide :) – apines

+0

Comment puis-je extraire la partie " bakwarte

Questions connexes