1

我在这里有点难过。我有这种方法,直到最近才正常工作:

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

给定以下字符串(取自我的单元测试),这将正常工作:

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

现在似乎正在发生的事情是我得到了这样的东西:

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

现在我的正则表达式不再匹配了。

我认为.*应该匹配所有字符,但它似乎被那个双引号绊倒了。关于如何让它再次工作的任何想法?

4

1 回答 1

1

在这里测试...

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

输出

True
True

我改变了什么?正则表达式模式到@"\^XA.*\^XZ\r\n". (从二backslashes到一)(\\r\\n

于 2011-05-02T18:46:07.487 回答