C#正则表达式;双引号问题

时间:2011-05-02 18:30:54

标签: c# regex double-quotes

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

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";

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

我认为.*应该与所有角色匹配,但似乎是在双引号上被绊倒了。关于如何让这个再次起作用的任何想法?

1 个答案:

答案 0 :(得分: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