我想采取以下输入<tag>30.234234cm</tag>并获得以下输出<tag>302.34234mm</tag>.标签之间的值是以厘米为单位的值,可以是十进制或整数,目标是将该值转换为毫米.
var input = "<tag>30.234234cm</tag>";
input = Regex.Replace(input, @"(\d+(\.\d+)?)cm", (double.Parse("$1") * 10).ToString() +
"mm", RegexOptions.IgnoreCase);
Run Code Online (Sandbox Code Playgroud)
我正在使用(\d+(\.\d+)?)第一个捕获组的表达式.但是,$1在上下文中不起作用double.Parse($1).如何获取单元的值,转换它并在提供的示例字符串中替换它?
好,
double.Parse("$1")
Run Code Online (Sandbox Code Playgroud)
尝试解析"$1"常量string并失败.我建议使用lambda:
var input = "<tag>30.234234cm</tag>";
input = Regex.Replace(
input,
@"(\d+(\.\d+)?)cm",
match => (double.Parse(match.Groups[1].Value) * 10).ToString() + "mm",
RegexOptions.IgnoreCase);
Run Code Online (Sandbox Code Playgroud)
这match.Groups[1].Value是捕获组的值(30.234234在示例中)