Frage

Ich bin hier ein wenig verblüfft. Ich hatte diese Methode, die bis vor kurzem gut funktionierte:

internal static bool IsZplFormat(string szString)
{
    var regex = new Regex(@"\^XA.*\^XZ\\r\\n");
    return regex.IsMatch(szString);
}

Das würde angesichts der folgenden Zeichenfolge (aus meinem Unit -Test) gut funktionieren:

const string zplSample = "^XA blah blah blah ^XZ\r\n";

Was jetzt zu passieren scheint, ist, dass ich so etwas bekomme:

const string zplSample = "^XA blah blah \"blah ^XZ\r\n";

Und jetzt stimmt mein Regex nicht mehr überein.

Ich dachte das .* Sollte mit allen Charakteren übereinstimmen, aber es scheint auf dieses doppelte Zitat gestolpert zu werden. Irgendwelche Ideen, wie ich das wieder zum Laufen bringen kann?

War es hilfreich?

Lösung

Testen hier ...

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();

Ausgabe

True
True

Was habe ich verändert? Das Regex -Muster zu @"\^XA.*\^XZ\r\n". (Von zwei backslashes zu eins) (\\r\\n)

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top