我有以下内容:
string text = "version=\"1,0\"";
我想将 逗号
替换为 点
,同时保留 1 和 0,但请记住它们在不同情况下是不同的!它可以是 version="2,3"
。
聪明的笨蛋和笨拙的方法是:
for (int i = 0; i <= 9; i++)
{
for (int z = 0; z <= 9; z++)
{
text = Regex.Replace(text, "version=\"i,z\"", "version=\"i.z\"");
}
}
但当然..它是一个字符串,我不希望 i
和 z
在那里表现得像一个字符串。
我也可以尝试蹩脚但有效的方式:
text = Regex.Replace(text, "version=\"1,", "version=\"1.");
text = Regex.Replace(text, "version=\"2,", "version=\"2.");
text = Regex.Replace(text, "version=\"3,", "version=\"3.");
等等..但它会很蹩脚。
关于如何单独处理这个问题的任何提示?
编辑:我还有其他不想替换的逗号,所以 text.Replace(",",".")
不能替换
最佳答案
你需要一个像这样的正则表达式来定位逗号
Regex reg = new Regex("(version=\"[0-9]),([0-9]\")");
然后做替换:
text = reg.Replace(text, "$1.$2");
您可以使用 $1、$2 等来按顺序引用匹配组。
关于c# - 使用 Regex.Replace 保留可以变化的字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29466463/