c# regex ,仅替换部分文本

标签 c# regex

我有一个文本变量,它可以包含许多 ((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/

相关文章:

c# - 部署后Az​​ure函数应用程序设置为空

c# - Exchange EWS Api - 按类别获取日历约会

regex - 仅解析具有多个匹配的行中的第一个正则表达式匹配

java - 比较 Reg Ex 模式的集合

java - 当围绕空格 (\s+) 进行分割时,第一个结果字符串的第一个索引有一个空的第 0 个字符

c# - ProgressBar 在阻塞的 UI 线程中更新

C# 运算符重载、重写字符串?

c# - 在测试实现时,我采用的方法是通用的还是我做错了?

java - 查找具有重复模式的重复模式

javascript - 从当前 url javascript 获取字符串斜杠后的值