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?

¿Fue útil?

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
scroll top