c#regexp,仅替换部分文本

时间:2015-08-17 13:39:22

标签: c# regex

我有一个文本变量,可以包含很多((VAR=var_name))。 我想仅在VAR=var_name中用var_name替换({src=))(例如,href=中没有。

sText = "some text href=\"sometext((VAR=XXXX))sometext((VAR=YYYYY))\"
src=\"sometext((VAR=XXXX))sometext((VAR=YYYYY)) \" some text some text
href=\"sometext((VAR=XXXX))sometext((VAR=YYYYY))\"
src=\"sometext((VAR=XXXX))sometext((VAR=YYYYY))\" some text";

我希望在更换后获得:

sText = "some text href=\"sometext((VAR=XXXX))sometext((VAR=YYYYY))\"
src=\"sometext**XXXX**sometext**YYYYY**\" some text some text
href=\"sometext((VAR=XXXX))sometext((VAR=YYYYY))\"
src=\"sometext**XXXX**sometext**YYYYY**\" some text";

你有个主意吗?

JC

1 个答案:

答案 0 :(得分:0)

string srcPattern = @"src="".+?""";
string varPattern = @"\(\(VAR=(.+?)\)\)";

string result = Regex.Replace(sText, srcPattern,
    m => Regex.Replace(m.Value, varPattern, n => "**" + n.Groups[1].Value + "**"));

第一个正则表达式匹配字符串src =“...”。而第二个正则表达式替换括号中的每个语句的值。