Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 在C中,什么可以代替字符串替换#_C#_Regex_String_Replace_Regex Lookarounds - Fatal编程技术网

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

C# 在C中,什么可以代替字符串替换#,c#,regex,string,replace,regex-lookarounds,C#,Regex,String,Replace,Regex Lookarounds,我目前正在代码类型=type.replace(“TRIM”、“RTRIM”)的某些部分中使用字符串replace 数据库当前{0}值为 修剪(VL9)像“{1}%” 修剪(VL7)像“{0}%” 3.(TRIM(VL9)像{0}%')) (VL9类似于'{1}%'和(TRIM(VL9)类似于'{0}%')) 这是一个巨大的数据库,替换功能在许多地方的许多文件中使用。将来,他们会将数据库中的TRIM更改为RTRIM,因此在代码(.cs文件)中,替换字符串变为 RRTRIM这给了我们一个错误 有没有

我目前正在代码类型
=type.replace(“TRIM”、“RTRIM”)的某些部分中使用字符串replace

数据库当前{0}值为

  • 修剪(VL9)像“{1}%”
  • 修剪(VL7)像“{0}%” 3.(TRIM(VL9)像{0}%'))
  • (VL9类似于'{1}%'和(TRIM(VL9)类似于'{0}%'))
  • 这是一个巨大的数据库,替换功能在许多地方的许多文件中使用。将来,他们会将数据库中的
    TRIM
    更改为
    RTRIM
    ,因此在代码(.cs文件)中,替换字符串变为
    RRTRIM
    这给了我们一个错误

    有没有什么简单的方法来编写代码,这些代码在现在和将来的更改后都可以使用


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

    以下代码仅在类型中没有“RTRIM”时运行:

    但由于您可能已经有了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}) ");
    
    使用正则表达式。

    另一个简单的方法是首先用TRIM替换所有RTRIM,然后用RTRIM替换TRIM

    type.Replace("RTRIM","TRIM").Replace("TRIM","RTRIM")
    

    可以使用正则表达式,但对于简单的点替换来说,它可能有点过头了。。这将再次使RTRIM和RRTRIM。。那么我们能做些什么呢。。??我正在尝试使用REGEX..REGEX.Replace(type,“(?I)[^A-Za-z]Trim”,“RTRIM”);输出是RTRIM VL9,类似于“{1}%”,RTRIM(VL9)类似于“{0}%”))替换时缺少一个大括号,如何忽略这一点。这里如何使用正则表达式?假设数据库值是RTRIM VL9,比如“{1}%”和(TRIM(VL9)比如“{0}%”)。。这将再次使RTRIM和RRTRIM。。那么我们能做些什么呢。。??我正在尝试使用REGEX..REGEX.Replace(type,“(?I)[^A-Za-z]Trim”,“RTRIM”);输出是RTRIM VL9,类似于“{1}%”,RTRIM(VL9)类似于“{0}%”))替换时缺少一个大括号,如何忽略这一点。如何在此处使用正则表达式?请参阅更新。这将更新所有这些文件,然后修复任何错误。我猜您正在尝试代码,有些东西已经更改了,有些没有,所以应该可以工作。它可以工作,但如果您看到RTRIM VL9像{1}%'和RTRIM(VL9)像{0}%'),作为查询的一部分的代码可能会抛出一个错误,比如“(“缺少哪个”(TRIM)被“RTRIM”替换。”。我怎么能让“TRIM”被替换为“RTRIM”并让“(”字符保持原样。上面的代码没有修剪任何括号。我认为您的正则表达式代码[A-Za-z]修剪这个而不是(?i)[^A-Za-z]修剪有问题
    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}) ");
    
    type.Replace("RTRIM","TRIM").Replace("TRIM","RTRIM")