Expresión regular para encontrar una subcadena unida por < >

¿Cuál es el código NSRegularExpression para obtener la primera aparición de una subcadena unida por <> en una cadena dada?

Cadena de búsqueda de ejemplo:

*01234:Q23WFA:10<HELLOWORLD>09AS:1019

Resultado necesario: HELLOWORLD

Gracias.

preguntado el 29 de septiembre de 13 a las 22:09

/<(.*?)>/s ? ¿Quizás eso debería funcionar? -

¿Tiene que ser una expresión regular? Obtener el primer rango de la < subcadena y obtenga el primer rango de la > subcadena que comienza con la ubicación del <. Esto sería mucho más eficiente que usar expresiones regulares. -

@rmaddy Eso es lo que tengo actualmente, pensé que NSRegularExpression sería más rápido. -

Las expresiones regulares de propósito general rara vez son más eficientes que el código de propósito específico. -

@rmaddy Gracias. Si puede responder esta pregunta con NSRegularExpression, agregaré mi solución de subcadena para que otros tengan algo para elegir. ¡Gracias por la ayuda! -

1 Respuestas

Usted puede ensayar lo siguiente

NSString *string = @"*01234:Q23WFA:10<HELLOWORLD>09AS:1019";
NSError *error = NULL;
NSRegularExpression *regex = [NSRegularExpression regularExpressionWithPattern:@"(?<=<)(.*?)(?=>)"
                                                                           options:NSRegularExpressionCaseInsensitive
                                                                             error:&error];
NSTextCheckingResult *match = [regex firstMatchInString:string
                                                options:0
                                                  range:NSMakeRange(0, [string length])];
    NSRange resultRange = [match range];
    NSString *substring = [string substringWithRange:resultRange];
    NSLog(@"Testing Indicator. Result is %@", substring);

Respondido el 30 de Septiembre de 13 a las 02:09

No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas or haz tu propia pregunta.