使用通配符或占位符验证字符串,最多可丢失2个字符

时间:2015-05-26 14:31:41

标签: c# regex validation tsql

我正在处理业务层查询,以根据数据库中的有效条目列表验证条目。我正在尝试使用最多2个外卡占位符进行验证。例如,XXXX_XX,其中_是通配符。要使用以下代码验证只有一个_ I&m; m的实例:

select A.id, A.Description, B.ManufacturName, B.supplierName
from Article20000Information A
left outer join Organisation B
ON B.id = A.id 

当我有一个条目XX_XX_X时出现问题。我已经考虑过使用正则表达式来分割代码并单独验证每个部分,如下所示。

if (DiagCode.Contains("_"))
                {
                    int count=0;
                    foreach (char c in DiagCode)
                    {                           
                        if(c.ToString() =="_")
                        count += 1;
                    }
                    if (count == 1)
                    {
                        int loc = DiagCode.IndexOf("_");
                        int len = DiagCode.Length;
                        int end = len - loc;

                        string diagCodeSubBegin = DiagCode.Substring(0, loc);
                        string diagCodeSubEnd = DiagCode.Substring(loc, end);

                        NHCSLINQ.MODEL.DIAGS_ICD10 tblDIAG_ICD102 = (from c in NHCSDB.DIAGS_ICD10s
                                                                     where c.Code.StartsWith(diagCodeSubBegin)
                                                                     && c.Code.EndsWith(diagCodeSubEnd)
                                                                     select c).SingleOrDefault();
                        if (tblDIAG_ICD102 != null)
                        {

                            return true;
                        }
                    }

然而,我不知道将_作为一个整体与各个字符串重新连接起来。必须有一种更简单的方法来实现这一目标吗?

1 个答案:

答案 0 :(得分:0)

你为什么要重新发明轮子呢? TSQL Like有这个,具有讽刺意味的是他们使用_。