我有以下内容:
string text = "version=\"1,0\"";
Run Code Online (Sandbox Code Playgroud)
我想替换comma
为a dot
,同时保持1和0,但要记住它们在不同的情况下是不同的!它可能是version="2,3"
.
自作聪明和noob-unworking方式做到这一点将是:
for (int i = 0; i <= 9; i++)
{
for (int z = 0; z <= 9; z++)
{
text = Regex.Replace(text, "version=\"i,z\"", "version=\"i.z\"");
}
}
Run Code Online (Sandbox Code Playgroud)
但是当然..它是一个字符串,我不想要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.");
Run Code Online (Sandbox Code Playgroud)
等等..但它会很蹩脚.
有关如何单手处理此问题的任何提示?
编辑:我有其他逗号,我不想替换,所以text.Replace(",",".")
做不到
你需要这样的正则表达式来找到逗号
Regex reg = new Regex("(version=\"[0-9]),([0-9]\")");
Run Code Online (Sandbox Code Playgroud)
然后做重新说明:
text = reg.Replace(text, "$1.$2");
Run Code Online (Sandbox Code Playgroud)
您可以使用$ 1,$ 2等按顺序引用匹配的组.