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