C#:Mass substring filtering

时间:2015-01-31 22:19:06

标签: c# sql

目前,我正在尝试使用我的程序构建映射函数,以便有人可以在序列号中输入人类可读的名称,例如:

if the string contains "829283" display the name "Test Company".

客户端能够创建他们希望的许多规则,它们存储在具有以下布局的SQL表中:P

| PROFILE  | FILTER | MAPPEDTO |
 Profile1   8273     MyCompany
 Profile1   HT75     ThatOther1

所以基本上,我希望程序运行从文本文件中提取的所有项目,然后检查每一行(大约250ish)是否有任何表格中出现的“FILTER”值,如果程序是找到一个过滤值,然后用公司名称填充另一列。

我想不出这样做的方式,所以我很感激你们可以提供的任何帮助。

谢谢

1 个答案:

答案 0 :(得分:0)

您可以使用正则表达式查找引用字符串的前两次出现。

string s = "if the string contains \"829283\" display the name \"Test Company\".";
string pattern = ".*\"(.*)\".*\"(.*)\"";
Match m = Regex.Match(s, pattern);
if (m.Success)
{
    string filter = m.Groups[1].Value;
    string mappedTo = m.Groups[2].Value;
}

然后查询数据库并相应地更新/插入记录