C# regex; Emisión de doble cita
-
28-10-2019 - |
Pregunta
Estoy un poco perplejo aquí. Tenía este método, que funcionaba bien hasta hace poco:
internal static bool IsZplFormat(string szString)
{
var regex = new Regex(@"\^XA.*\^XZ\\r\\n");
return regex.IsMatch(szString);
}
Eso funcionaría bien dada la siguiente cadena (tomada de mi prueba unitaria):
const string zplSample = "^XA blah blah blah ^XZ\r\n";
Lo que parece estar sucediendo ahora, es que estoy obteniendo algo como esto:
const string zplSample = "^XA blah blah \"blah ^XZ\r\n";
Y ahora mi regex ya no coincide.
Pensé el .*
Debería coincidir con todos los personajes, pero parece ser tropezado con esa doble cita. ¿Alguna idea sobre cómo puedo hacer que esto funcione nuevamente?
Solución
Probando aquí ...
string zplSample = "^XA blah blah blah ^XZ\r\n";
string zplSample1 = "^XA blah blah \"blah ^XZ\r\n";
Console.WriteLine(new Regex(@"\^XA.*\^XZ\r\n").IsMatch(zplSample));
Console.WriteLine(new Regex(@"\^XA.*\^XZ\r\n").IsMatch(zplSample1));
Console.ReadKey();
Producción
True
True
¿Qué cambié? El patrón regex para @"\^XA.*\^XZ\r\n"
. (De dos backslashes
a uno) (\\r\\n
)
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow