Как сжать эту функцию до коротких в Regex? - PullRequest
0 голосов
/ 22 сентября 2009
    private string AccessToSQL(string accessString)

{
    accessString = Regex.Replace(accessString, "dbo_", String.Empty);
    accessString = Regex.Replace(accessString, "\"", "'");
    accessString = Regex.Replace(accessString, "%START%", startDate);
    accessString = Regex.Replace(accessString, "%STOP%", endDate);
    string midToSubs = Regex.Match(accessString, @"mid\(.+?\)", RegexOptions.IgnoreCase).Value;
    string fieldName = Regex.Replace(Regex.Match(midToSubs, @"\[.+?\]").Value, @"\[|\]", String.Empty);
    string toSubString = "SUBSTRING(" + fieldName + ", 2, LEN(" + fieldName + "))";
    accessString = Regex.Replace(accessString, @"mid\(.+?\)", toSubString, RegexOptions.IgnoreCase);
    return accessString;
}

есть обязательные регулярные выражения. Замените, как короче?

1 Ответ

0 голосов
/ 31 января 2010

Вы можете конвертировать MID в SUBSTRING с одной заменой:

accessString = Regex.Replace(accessString,
                             @"mid\(.*?\[(.+?)\].*?\)",
                             "SUBSTRING($1, 2, LEN($1))",
                             RegexOptions.IgnoreCase);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...