Dada una cadena grande, ¿cuál es la mejor manera de crear una matriz de todas las URL válidas que están contenidas dentro de la cadena?Objetivo-C: buscar una URL dentro de una cadena
Respuesta
No es necesario utilizar RegexKitLite
para esto, ya que iOS 4 Apple proporciona NSDataDetector
(una subclase de NSRegularExpression
).
Se puede utilizar simplemente como esto (source
es su cadena):
NSDataDetector* detector = [NSDataDetector dataDetectorWithTypes:NSTextCheckingTypeLink error:nil];
NSArray* matches = [detector matchesInString:source options:0 range:NSMakeRange(0, [source length])];
NSDataDetector está * solo * disponible en iOS. El título de la pregunta es "* Objetivo-C * Encontrar una URL dentro de una cadena" –
Es cierto, depende de qué plataforma esté trabajando Mick ... Pero al ver sus últimas preguntas, apunta a iOS. – gcamp
En retrospectiva, se agregó a Mac en 10.7, un par de meses después de los comentarios anteriores. – Tommy
que haría uso de este RegexKitLite:
#import "RegExKitLite.h"
...
NSString * urlString = @"blah blah blah http://www.google.com blah blah blah http://www.stackoverflow.com blah blah balh http://www.apple.com";
NSArray *urls = [urlString componentsMatchedByRegex:@"http://[^\\s]*"];
NSLog(@"urls: %@", urls);
Lienzo:
urls: (
"http://www.google.com",
"http://www.stackoverflow.com",
"http://www.apple.com"
)
(Por supuesto, la expresión regular que he usado para las direcciones URL no se ha simplificado, pero se entiende la idea.)
Esta es la mejor manera de extraer enlace URL.
NSString *url_ = @"dkc://name.com:8080/123;param?id=123&pass=2#fragment";
NSURL *url = [NSURL URLWithString:url_];
NSLog(@"scheme: %@", [url scheme]);
NSLog(@"host: %@", [url host]);
NSLog(@"port: %@", [url port]);
NSLog(@"path: %@", [url path]);
NSLog(@"path components: %@", [url pathComponents]);
NSLog(@"parameterString: %@", [url parameterString]);
NSLog(@"query: %@", [url query]);
NSLog(@"fragment: %@", [url fragment]);
de salida:
esquema: dkc
host: name.com
puerto: 8080
ruta:/12345
componentes de la ruta: ( "/", 123) parameterString: param
consulta: id = 1 & pass = 2
fragmento: fragmento
- 1. Buscar url de una cadena con php
- 2. Encuentra una cadena dentro de otra cadena, buscar hacia atrás
- 3. Buscar una palabra en una cadena
- 4. Buscar una imagen dentro de una imagen
- 5. Buscar todas las instancias de una cadena dentro de una cadena
- 6. PHP: Eliminar 'WWW' de la URL dentro de una Cadena
- 7. Python expresión regular para buscar una cadena entre comillas dobles dentro de una cadena
- 8. Cómo buscar una cadena en una matriz
- 9. Cómo eliminar cualquier URL dentro de una cadena en Python
- 10. ¿Cómo buscar una cadena en otra cadena?
- 11. Obtiene una URL de una cadena
- 12. ¿Cómo buscar y reemplazar todas las instancias de una cadena dentro de una base de datos?
- 13. Buscar texto en una cadena con C#
- 14. Comillas dentro de una cadena
- 15. compruebe si una cadena es una URL
- 16. ¿Cómo buscar una cadena dentro de una clase en Squeak smalltalk? ¿Qué tal dentro de un paquete?
- 17. Buscar una cadena en varios campos de una tabla
- 18. PHP buscar una cadena para una dirección de correo electrónico
- 19. ¿Cómo obtener una URL de ImageField dentro de una plantilla?
- 20. Buscar una cadena o parte de cadena en PHP
- 21. Buscar cadena más común en una matriz
- 22. cómo buscar una cadena exacta en mysql
- 23. Cómo buscar una cadena en String array
- 24. Buscar subcadena en una cadena usando C#
- 25. regex para buscar una cadena entre corchetes []
- 26. Cómo buscar una cadena en archivos JAR
- 27. Regex para buscar una palabra en una cadena en Visual Studio
- 28. Crear URL a partir de una cadena
- 29. Descargar archivo de URL a una cadena
- 30. Buscar cadena dentro de la columna de texto en MySQL
Es esto para la visualización en un 'UITextView' o una' UILabel' o para soemthing otro sitio? – dredful
Consulte [mi respuesta] (http://stackoverflow.com/a/25574255/1966109) para obtener una pregunta similar que utiliza Swift 3 y ofrece 2 formas de resolver su problema. –