Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/309.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# 使用正则表达式替换字符串| var11=ab | var12=100 | var21=cd | var22=200 |中的ab_C#_Regex - Fatal编程技术网

C# 使用正则表达式替换字符串| var11=ab | var12=100 | var21=cd | var22=200 |中的ab

C# 使用正则表达式替换字符串| var11=ab | var12=100 | var21=cd | var22=200 |中的ab,c#,regex,C#,Regex,我想在给定字符串中替换ab,后跟var11 输入:| var11=ab | var12=100 | var21=cd | var22=200 | 我的代码如下: string input = "|var11=ab|var12=100|var21=cd|var22=200|"; string pattern = @"^.var11=([a-z]+)."; string value = Regex.Replace(input, pattern, "ep"); 我得到的结果是: epvar12=10

我想在给定字符串中替换
ab
,后跟
var11

输入:
| var11=ab | var12=100 | var21=cd | var22=200 |

我的代码如下:

string input = "|var11=ab|var12=100|var21=cd|var22=200|";
string pattern = @"^.var11=([a-z]+).";
string value = Regex.Replace(input, pattern, "ep");
我得到的结果是:

epvar12=100 | var21=cd | var22=200|

但预期产出是:

|var11=ep| var12=100 | var21=cd | var22=200|

你可以用

string input = "|var11=ab|var12=100|var21=cd|var22=200|";
string pattern = @"(?<=\bvar11=)[^|]+";
string value = Regex.Replace(input, pattern, "ep");

详细信息


  • (?
    Regex.Replace(input,pattern,“| var11=ep |”)
    当构建一个正则表达式而没有得到您期望的调试器时,就像这样一个调试器很好。您看到的是,您的正则表达式与子字符串部分| var11=ab |匹配,然后您将该匹配替换为“ep”,解决方案是简单地将其替换为“| var11=ep |”相反,这正是我想要的,如果我还必须处理空格,例如| var11=ab |@abhi Use
    string pattern=@(?也+1)它帮助我更好地理解正则表达式,
    
    string pattern = @"\b(var11=)[^|]+";
    string value = Regex.Replace(input, pattern, "${1}ep");
    
    string pattern = @"(?<=(?:^|\|)var11=)[^|]+";