c# - 使用 Regex.Replace 保留可以变化的字符

标签 c# regex replace

我有以下内容:

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\"");
                }
            }

但当然..它是一个字符串,我不希望 iz 在那里表现得像一个字符串。

我也可以尝试蹩脚但有效的方式:

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/

相关文章:

c# - 空合并运算符线程安全吗?

ruby - 使用非单词字符正则表达式拆分字符串时的奇怪行为

javascript - 识别并计算规范。人物

c# - 如何设置/现在DateTime类的日期格式解释?

c# - MongoDB 计算某个项目在另一个表中被引用的次数

javascript - 密码验证正则表达式

javascript - 如何判断一个字符串是否是一个数组?

mysql : how to escape double quote?

regex - 像使用 sed 一样替换具有模式的字符串

c# - 如何在visual studio中生成aspx.designer.cs?