如何逐字处理从SQL读取的字符串?

时间:2016-05-03 15:07:30

标签: c# sql regex

我正在为我们的工厂开发病毒/勒索软件预警系统,该系统将从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读取时,如何保持正则表达式的逐字状态?

提前感谢您的任何帮助!

1 个答案:

答案 0 :(得分:1)

只想验证此问题已得到解决。在阅读器命令前面加@会产生预期的效果,只是我通过调试环境查看字符串,这让我很难想到。

感谢大家的投入!是否会提出有用的评论,但看起来我还没有足够的代表。