2009-09-22 22 views
-1
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; 
} 

必須regex.replace如何縮短?如何在Regex中將此函數壓縮爲short?

回答

0

你可以轉換到MIDSUBSTRING一個替代:

accessString = Regex.Replace(accessString, 
          @"mid\(.*?\[(.+?)\].*?\)", 
          "SUBSTRING($1, 2, LEN($1))", 
          RegexOptions.IgnoreCase);