Mon application reçoit de nombreuses chaînes de texte qui peuvent contenir ou non une URL n'importe où dans la chaîne. Quelle serait la meilleure méthode pour extraire une URL à partir d'une chaîne? Je vous remercie.Extraction d'une URL à partir d'une chaîne
Répondre
The BSD-licensed AutoHyperlinks framework fournit les classes pour analyser le texte pour les URL et les retourner à vous ou les marquer comme des liens dans une chaîne attribuée.
Je ne pense pas qu'il construit hors de la boîte pour l'iPhone, mais vous pouvez toujours ajouter des directives de préprocesseur pour découper tout code dépendant AppKit. L'interface scan-and-return devrait juste fonctionner, une fois que vous l'aurez compilé. (Assurez-vous d'exécuter les tests.)
Mike Abdullah wrote a patch for iPhone support. Vous pourriez essayer.
Si vous travaillez sur une application Mac, Mac OS X 10.6 offre une nouvelle API pour vous permettre de détecter les URL avec le correcteur orthographique. Vous pouvez le faire de cette façon.
NSString *s = @"http://example.com"
NSInteger wordCount = 0;
NSOrthography *orthography = nil;
NSArray *checkResults = [[NSSpellChecker sharedSpellChecker] checkString:s range:NSMakeRange(0, [s length]) types:NSTextCheckingTypeLink options:nil inSpellDocumentWithTag:0 orthography:&orthography wordCount:&wordCount];
for (NSTextCheckingResult *result in checkResults) {
NSRange range = result.range;
NSURL *URL = result.URL;
}
Ceci est certainement préférable d'apporter un cadre dédié si vous le pouvez. Notez que vous ne vous souciez pas vraiment du nombre de mots de l'orthographe lors de la recherche de liens, il suffit de passer un pointeur NULL pour plus d'efficacité. –
J'ai également implémenté ceci dans notre code KSFileUtilities open source: https://github.com/karelia/KSFileUtilities/commit/4ef561512fab9a169fcf63129037bfddfda6257b –
- 1. Extraction d'URL à partir d'une chaîne de type JSON
- 2. extraction d'une ou plusieurs URL à partir d'une chaîne dans php
- 3. Extraction d'une chaîne à partir d'un nom de fichier
- 4. Extraction de données à partir d'une chaîne non formatée
- 5. extraction d'un nombre à partir d'une chaîne en Java
- 6. Obtenir une URL à partir d'une chaîne
- 7. URL à l'aide regex Extraction dans .NET
- 8. Extraction d'images incorporées à partir d'Outlook Email
- 9. Extraction d'images à partir du Web
- 10. extraction de chaîne Python
- 11. Extraction d'URL RSS/ATOM à partir de balises HTML LINK
- 12. Extraction de MimeType à partir de shell32
- 13. extraction de données à partir d'un plist
- 14. Extraction de données à partir d'un objet
- 15. Extraction d'Actionscript à partir d'un fichier .fla
- 16. Extraction d'adresses MAC à partir d'UUID
- 17. extraction de données à partir d'un fichier
- 18. Comment extraire une chaîne à partir d'une url
- 19. Comment obtenir une URL valide à partir de la chaîne?
- 20. Obtenir le domaine à partir d'une chaîne encodée URL
- 21. Créer une URL valide à partir d'une chaîne, php
- 22. Extraction numéro ID d'une URL dans Javascript
- 23. Extraction d'éléments uniques à partir d'une liste de mappages
- 24. Extraction de données à partir d'une chaîne à l'aide d'expressions régulières
- 25. extraction de chaîne en C# WinForms
- 26. extraction d'informations à partir de xml mais pas d'affichage
- 27. Extraction de texte à partir de HTML (Perl)
- 28. Perte de précision possible; extraction de char à partir de la chaîne
- 29. Extraction des liens et des réponses de twitter à partir d'une chaîne
- 30. Extraction de plusieurs parties d'une chaîne à l'aide de bash
Merci, j'ai essayé cela, mais à en juger par le nombre d'erreurs et d'avertissements générés, il faudra une quantité de travail importante pour obtenir ce travail sur l'iPhone - – RunLoop
JK: Cela peut induire en erreur. Une seule ligne de code peut produire beaucoup d'erreurs si elle est suffisamment incompilable, mais c'est toujours une seule ligne de code. Je pense que les parties de AutoHyperlinks dépendantes d'AppKit sont suffisamment isolées pour que vous puissiez les conditionner assez facilement. –
Merci Peter. Je vais essayer le patch demain. – RunLoop