感谢 SO 对我的其他问题的所有大力帮助,我开始掌握 RegEx。但我还是很讨厌这个:
我的代码是:
StreamReader reader = new StreamReader(fDialog.FileName.ToString());
string content = reader.ReadToEnd();
reader.Close();
我正在阅读一个文本文件,我想搜索这个文本并更改它(X 和 Y 值在我的文本文件中总是相互跟随):
X17.8Y-1。
但是这个文本也可以是X16.1Y2.3(X和Y之后的值总是不同的)
我想改成这样
X17.8Y-1.G54
或者
X(值)Y(值)G54
我的 RegEx 语句如下,但它不起作用。
content = Regex.Replace(content, @"(X(?:\d*\.)?\d+)*(Y(?:\d*\.)?\d+)", "$1$2G54");
有人可以帮我修改它使其工作并搜索 X(wildcard) Y(Wildcard) 并将其替换为 X(value)Y(value)G54 吗?
最佳答案
你需要的正则表达式是:
X[-\d.]+Y[-\d.]+
以下是如何在 C# 中使用它:
string content = "foo X17.8Y-1. bar";
content = Regex.Replace(content, @"X[-\d.]+Y[-\d.]+", "$0G54");
Console.WriteLine(content);
输出:
foo X17.8Y-1.G54 bar
关于c# - 查找和替换 RegEx 问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2806789/