【发布时间】:2011-02-17 11:44:47
【问题描述】:
我试图用不同的文本替换字符串中的一些文本,同时保留一些文本,但我遇到了麻烦。
我的代码是:
StreamReader reader = new StreamReader(fDialog.FileName.ToString());
string content = reader.ReadToEnd();
reader.Close();
/Replace M2 with M3 (this works fine)
content = Regex.Replace(content, "M2", "M3");
我想替换一个包含这个的字符串:
Z0.1G0H1E1
并把它变成:
G54G43Z.1H1M08
(注意Z值和H值在文字变化前包含相同的数值)
我遇到的麻烦是,当我替换值时,我需要保留第一组文本中的 H 值和 Z 值。
例如,
Z0.5G0H5E1
我需要添加新文本,还要将 H5 和 Z0.5 添加回文本中,例如:
G54G43Z0.5H5M08
但是 Z 值和 H 值每次都会不同,所以我需要在添加新的 G54G43 值时捕获这些值并将它们重新插入到字符串中。
有人可以告诉我如何使用 Regex.Replace 做到这一点吗?
【问题讨论】:
-
我想补充一点:这些规范缺少很多细节,很容易错过你的要求。
G54G4...M08是固定字符串吗?是作为一个完整的字符串出现,还是作为更多文本的一部分出现? Z之前可以有字符吗?另外,请注意,在第一种情况下您不需要正则表达式,您可以完成content = content.Replace("M2", "M3");
标签: c# regex replace find wildcard