objective c - iOS Regex: secuencia de escape desconocida "/ |"
objective-c nsregularexpression (2)
Recibo una advertencia extraña y, como resultado, mi búsqueda de expresiones regulares no funciona. Aquí está la línea:
NSRange r = [HTML rangeOfString:@"/|(.*)/|" options:NSRegularExpressionSearch];
Donde HTML
es una cadena que estoy seguro que contiene una sola coincidencia para la expresión regular anterior.
La advertencia es solo en la primera aparición de "/ |", no en ambos.
¡Cualquier ayuda es muy apreciada!
Estás recibiendo la advertencia porque /|
no es una secuencia de escape válida en Objective-C (o C o C ++ para esa materia). El compilador está ignorando eso y solo está usando un raw |
en su lugar, así que la cadena que está pasando es @"|(.*)|"
.
Para obtener el comportamiento que desea, debe escapar de la barra invertida en su código fuente para que el motor de expresiones regulares vea la barra invertida literal e interprete la |
carácter como literal en lugar de como alternancia, por ejemplo, @"//|(.*)//|"
.
Solo para agregar, si estás tratando con secuencias de caracteres especiales en formato Unicode, puedes usar algo como esto:
const unichar specialCharSequence=''some special character'';
if(specialCharSequence==L''/uxxxx'')
{
//handle the occurence of this special character
}