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

问题描述 投票:1回答:1

我要在给定字符串中替换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 |

c# regex
1个回答
0
投票

您可以使用

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

或者是一个捕获小组的方法:

string pattern = @"\b(var11=)[^|]+";
string value = Regex.Replace(input, pattern, "${1}ep");

请参见.NET regex demo

详细信息

  • [(?<=\bvar11=)-紧接整个单词var11=]的位置>
  • [[^|]+-1+非管道字符。
  • 如果仅在var11之前或字符串使用开始时才想更新|值,则>

string pattern = @"(?<=(?:^|\|)var11=)[^|]+";

其中(?:^|\|)匹配字符串(^)或(|)管道字符(\|)的开头。

© www.soinside.com 2019 - 2024. All rights reserved.