我有一个文本变量,它可以包含许多 ((VAR=var_name
))。
我只想在 src=
中用 var_name 替换 ((VAR=var_name
))(例如,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
最佳答案
string srcPattern = @"src="".+?""";
string varPattern = @"\(\(VAR=(.+?)\)\)";
string result = Regex.Replace(sText, srcPattern,
m => Regex.Replace(m.Value, varPattern, n => "**" + n.Groups[1].Value + "**"));
第一个正则表达式匹配字符串 src = "..."。而第二个正则表达式将括号中的每个语句替换为它的值。
关于c# regex ,仅替换部分文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32051920/