在C#中可以使用什么代替字符串替换

时间:2016-04-14 20:55:48

标签: c# regex string replace regex-lookarounds

我目前在代码类型= type.Replace("TRIM", "RTRIM");

的某些部分使用字符串替换
 type = type.Replace("TRIM", "RTRIM"); 
    StringBuilder builder =newStringBuilder();
    builder.AppendLine(" .....bla bla..."); 
    if (type.Trim() != ""){
    builder.AppendLine(@"   WHERE ({0}) ");
    }

数据库当前{0}值为

  
      
  1. TRIM(VL9)LIKE'{1}%'
  2.   
  3. TRIM(VL7)喜欢'{0}%'   3.(TRIM(VL9)LIKE'{0}%'))
  4.   
  5. (VL9 LIKE'{1}%'AND(TRIM(VL9)LIKE'{0}%'))
  6.   

这是一个庞大的数据库,并且替换功能在许多地方的许多文件中使用。将来他们会在数据库中将TRIM更改为RTRIM,然后在代码(.cs文件)中将替换字符串变为 RRTRIM给了我们一个错误。

是否有任何简单的代码方法可以在现在和未来的更改后使用?

PS:最初的.cs查询在DB2中,现在已更改为SQL SERVER查询,现在他们将在db中进行更改,如将TRIM更改为RTRIM

2 个答案:

答案 0 :(得分:0)

以下代码仅在没有" RTRIM"在类型:

    if (!type.contains("RTRIM"))
        {
            type = type.Replace("TRIM", "RTRIM"); 
            if (!type.contains("RRTRIM"))
            {
                type = type.Replace("RRTRIM", "RTRIM");
            }
            StringBuilder builder =newStringBuilder();
            builder.AppendLine(" .....bla bla..."); 
            if (type.Trim() != ""){
            builder.AppendLine(@"   WHERE ({0}) ");
            }
        }

但是因为你可能已经有了rrtrim的地方,甚至rrrtrim你可以这样做:

type = type.Replace("TRIM", "RTRIM"); 
type = type.Replace("RRTRIM", "RTRIM");
type = type.Replace("RRRTRIM", "RTRIM");
StringBuilder builder =newStringBuilder();
builder.AppendLine(" .....bla bla..."); 
if (type.Trim() != ""){
builder.AppendLine(@"   WHERE ({0}) ");

答案 1 :(得分:0)

使用正则表达式。 How to search and replace exact matching strings only

另一个简单的黑客可以先用TRIM替换所有RTRIM,然后用RTRIM替换TRIM

type.Replace("RTRIM","TRIM").Replace("TRIM","RTRIM")
相关问题