c存在运算符的Regex.IsMatch字符串
本文关键字:IsMatch 字符串 Regex 存在 运算符 | 更新日期: 2023-09-27 18:22:08
我似乎无法让这些代码运行
private void test()
{
int success = 0;
string strLine = "E0 Q0 V1 X4 &C1 &D1 &R1 &S0 +IFC= 2,2 &K3 +FCLASS0";
if (Regex.IsMatch(strLine, "E6 Q1 V4 X8 &C2 &D1 &R1 &S0 +IFC= 4,4 &K4 +FCLASS2"))
success++;
if (Regex.IsMatch(strLine, "E0 Q0 V1 X4 &C1 &D1 &R1 &S0 +IFC= 2,2 &K3 +FCLASS0"))
success++;
LogMessage("Success =" + success.ToString()); // SENDS DATA TO LOG SCREEN
}
private void TESTbutton_Click(object sender, EventArgs e)
{
test();
}
17:39:29.98-成功=0
我需要准确匹配它,并尝试在运算符"+&-"之前使用反斜杠"''"等,使其成为真的正确方法是什么?
如果您坚持使用正则表达式,则必须转义密钥符号(+
、*
等):
String toFind = "E0 Q0 V1 X4 &C1 &D1 &R1 &S0 +IFC= 2,2 &K3 +FCLASS0";
// String = Regex.Escape(toFind); // for "contains"
String pattern = "^" + Regex.Escape(toFind) + "$"; // ^ ... $ for exact match
if (Regex.IsMatch(strLine, pattern))
success++;
然而,您似乎可以比较字符串:
String toFind = "E0 Q0 V1 X4 &C1 &D1 &R1 &S0 +IFC= 2,2 &K3 +FCLASS0";
// Exact match
if (String.Equals(strLine, toFind, StringComparison.Ordinal))
success++;
// Contains
// if (strLine.Contains(toFind))
// success++;