【发布时间】:2018-09-14 01:25:22
【问题描述】:
我有一个小程序,它通过获取用户输入并在模板中替换字符串来生成一些文档。我有一些变量,例如日期和创建文档的人的姓名。但是我有两个变量,纬度和经度,我无法在生成的文档中替换它们。在我使用的文档模板中,所有需要替换的字段都是这种格式:{field}。所以替换名称看起来像:{name}。除了经度和纬度之外,我所有的六个变量都可以使用。这些数字是网格坐标,所以写成12.3456,-98.7654。我将它们定义为一个字符串(连同我所有的其他变量)。我认为我的正则表达式不正确/损坏。
例如,经度函数如下所示:
Console.WriteLine("Enter Longitude");
longitude = Console.ReadLine();
Console.WriteLine($"Longitude: {longitude}");
替换文档中文本的正则表达式如下所示:
Regex regexLongitude = new Regex("{longitude}");
docText = regexLongitude.Replace(docText, longitude);
纬度功能相同,只需将longitude替换为latitude即可。事实上,我所有的变量都是在这些相同的函数中定义和使用的。
这个问题是一致且可重现的。我尝试重命名变量,将变量重新定义为浮点数(我认为我做的不正确),即使只是使用不带小数点的随机数字字符串。即使我使用文本,例如 abc 作为坐标,它们也不会被替换。正则表达式中的某些内容只是跳过了这一点。这几天一直在研究,现在不知所措。
【问题讨论】:
标签: c# docx openxml-sdk