我在这里有点难过。我有这种方法,直到最近才正常工作:
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";
现在我的正则表达式不再匹配了。
我认为.*
应该与所有角色匹配,但似乎是在双引号上被绊倒了。关于如何让这个再次起作用的任何想法?
答案 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
)