test regular regexp example ejemplo objective-c regexkitlite

objective-c - regexp - regular expression



¿Cómo comprobar si la cadena coincide con una expresión regular en object-c? (4)

Ya que las expresiones regulares no son compatibles con Cocoa, me parece que RegexKitLite muy útil. Pero todos los ejemplos extraen cadenas coincidentes.

Solo quiero probar si una cadena coincide con una expresión regular y obtener un Sí o No.

¿Cómo puedo hacer eso?


He usado NSPredicate para ese propósito:

NSString *someRegexp = ...; NSPredicate *myTest = [NSPredicate predicateWithFormat:@"SELF MATCHES %@", someRegexp]; if ([myTest evaluateWithObject: testString]){ //Matches }



Otra forma de hacer esto, que es un poco más simple que usar NSPredicate , es una opción casi no documentada para NSString''s -rangeOfString:options: ::

NSRange range = [string rangeOfString:@"^//w+$" options:NSRegularExpressionSearch]; BOOL matches = range.location != NSNotFound;

Digo "casi sin documentar", porque el método en sí no lista la opción como disponible, pero si se encuentra con la documentación de los operadores de Búsqueda y Comparación y encuentra NSRegularExpressionSearch verá que es una opción válida para -rangeOfString... métodos desde OS X 10.7 y iOS 3.2.


Utilice el método -isMatchedByRegex:

if([someString isMatchedByRegex:@"^[0-9a-fA-F]+:"] == YES) { NSLog(@"Matched!/n"); }