Digamos que tengo este NSString
: @"Country Address Tel:number"
. ¿Cómo puedo hacer para obtener la subcadena anterior a Tel
? (Dirección de país) Y luego ¿Cómo puedo hacer para obtener la subcadena que está después de Tel
? (Número)Obtener una subcadena de un NSString hasta llegar a una palabra específica
18
A
Respuesta
28
uso NSScanner:
salidaNSString *string = @"Country Address Tel:number";
NSString *match = @"tel:";
NSString *preTel;
NSString *postTel;
NSScanner *scanner = [NSScanner scannerWithString:string];
[scanner scanUpToString:match intoString:&preTel];
[scanner scanString:match intoString:nil];
postTel = [string substringFromIndex:scanner.scanLocation];
NSLog(@"preTel: %@", preTel);
NSLog(@"postTel: %@", postTel);
NSLog:
Pretel: País Dirección
postTel: número
22
La manera más fácil es si se conoce el delimitador, (si es siempre :
) puede utilizar esta:
NSArray *substrings = [myString componentsSeparatedByString:@":"];
NSString *first = [substrings objectAtIndex:0];
NSString *second = [substrings objectAtIndex:1];
que dividir su cadena en dos pedazos, y le dará la matriz con cada subcadena
2
Aquí es una extensión de la respuesta de Zaph que he aplicado con éxito.
-(NSString*)stringBeforeString:(NSString*)match inString:(NSString*)string
{
if ([string rangeOfString:match].location != NSNotFound)
{
NSString *preMatch;
NSScanner *scanner = [NSScanner scannerWithString:string];
[scanner scanUpToString:match intoString:&preMatch];
return preMatch;
}
else
{
return string;
}
}
-(NSString*)stringAfterString:(NSString*)match inString:(NSString*)string
{
if ([string rangeOfString:match].location != NSNotFound)
{
NSScanner *scanner = [NSScanner scannerWithString:string];
[scanner scanUpToString:match intoString:nil];
NSString *postMatch;
if(string.length == scanner.scanLocation)
{
postMatch = [string substringFromIndex:scanner.scanLocation];
}
else
{
postMatch = [string substringFromIndex:scanner.scanLocation + match.length];
}
return postMatch;
}
else
{
return string;
}
}
Cuestiones relacionadas
- 1. Encontrar una subcadena en un objeto NSString
- 2. Obtener una cadena después de una subcadena específica
- 3. de REGEX: Agarrando todo hasta que una palabra específica
- 4. Obtener la última palabra de un NSString
- 5. ¿Cómo obtener la subcadena de NSString?
- 6. Combinar hasta una confirmación específica
- 7. Eliminar una palabra específica de una cadena
- 8. IOS: NSString recuperando una subcadena de una cadena
- 9. Cómo determinar si una cadena contiene una subcadena específica
- 10. En java, ¿cómo obtener la subcadena de una cadena hasta que un personaje c?
- 11. XSLT Seleccionar todos los nodos que contienen una subcadena específica
- 12. Sustituir una subcadena con otra subcadena
- 13. ¿Cómo encontrar una palabra NO precedida por otra palabra específica?
- 14. ¿Cómo obtener una subcadena de texto?
- 15. Comprobar la subcadena de NSString estrellarse
- 16. ¿Cómo puedo cortar una subcadena de una cadena hasta el final usando Javascript?
- 17. regex para encontrar una palabra antes y después de una palabra específica
- 18. Desplazamiento de TextView en ScrollView a una subcadena de texto específica
- 19. ¿Cómo puedo obtener una subcadena desde la posición N hasta el último carácter en Ruby 1.8.7?
- 20. Añade una nueva línea a un NSString
- 21. Buscar subcadena en una cadena usando C#
- 22. ¿Hasta dónde pueden llegar las macros LISP?
- 23. reemplazar sólo la primera instancia de una subcadena en una NSString
- 24. ¿Verifica si una cadena contiene una palabra pero solo en una posición específica?
- 25. ¿Cómo extraer una subcadena de una cadena en PHP hasta que alcanza cierto carácter?
- 26. Git changelog: cómo obtener todos los cambios hasta una etiqueta específica?
- 27. Obtener palabra de mucho toque en una palabra de UITextView
- 28. Cómo obtener un solo carácter NSString de un NSString
- 29. cómo quitar caracteres de NSString después NSString específica
- 30. ¿Cómo encuentro la última aparición de una subcadena en un NSString?
Impresionante. Gracias –
gracias por una solución "práctica". – Vats