Я начинаю захватывать RegEx благодаря всей большой помощи здесь, на SO с моими другими вопросами. Но я все еще сосать на этом одном:Найти и заменить RegEx вопрос
Мой код:
StreamReader reader = new StreamReader(fDialog.FileName.ToString());
string content = reader.ReadToEnd();
reader.Close();
Я читаю в текстовый файл, и я хочу, чтобы найти этот текст и изменить его (Х и значение Y всегда следуйте друг за другом в текстовом файле):
X17.8Y-1.
Но этот текст также может быть X16.1Y2.3 (значения всегда будут отличаться после X и Y)
Я хочу, чтобы изменить его к этому
X17.8Y -1.G54
или
Х (значение) Y (значение) G54
Записывается инструкция RegEx, но она не работает.
content = Regex.Replace(content, @"(X(?:\d*\.)?\d+)*(Y(?:\d*\.)?\d+)", "$1$2G54");
Может кто-то пожалуйста изменить его для меня, поэтому он работает и будет искать X (подстановочные) Y (Wildcard) и заменить его на X (значение) Y (значение) G54?
Работает идеально. Огромное спасибо. – fraXis
или 'X [0-9 .-] + Y [0-9 .-] +' – Armstrongest
Теперь это также соответствует строкам типа '" X-17--2..3.-Y -... 1. " ', который я не думаю, что он хочет. Его исходное регулярное выражение в своем вопросе специально отфильтровывает нечисловые выражения (оно принимает только числа, такие как .5 или 2.3 или 44). Разве это не приведет к ложным срабатываниям? –