我正在为我们的工厂开发病毒/勒索软件预警系统,该系统将从FileSystemMonitor收集的文件名和路径与SQL数据库中的正则表达式列表进行比较。
我遇到的问题是C#在从SQL服务器读取时从我的正则表达式中转义。
例如:
SqlCommand command = new SqlCommand("SELECT * FROM Filters ORDER BY Sequence ASC", sqlServer);
SqlDataReader reader = null;
reader = command.ExecuteReader();
filter temp;
while (reader.Read())
{
temp.dir = @reader["Folder"].ToString().Trim();
temp.file = @reader["Filter"].ToString().Trim();
if (!temp.file.Equals(""))
{
filterList.Add(temp);
}
}
如果SQL字段Filter
包含有效的正则表达式.*\.scr$
,则temp.filter
会以内容.*\\.scr$
结束,从而导致错过正则表达式匹配。
从SQL读取时,如何保持正则表达式的逐字状态?
提前感谢您的任何帮助!
答案 0 :(得分:1)
只想验证此问题已得到解决。在阅读器命令前面加@
会产生预期的效果,只是我通过调试环境查看字符串,这让我很难想到。
感谢大家的投入!是否会提出有用的评论,但看起来我还没有足够的代表。