Найти и заменить вопрос относительно RegEx.Replace - PullRequest
1 голос
/ 14 мая 2010

У меня есть текстовый файл, и я хочу иметь возможность изменять все экземпляры:

T1M6 до N1T1M6


T всегда будет другим значением в зависимости от загруженного текстового файла. Например, иногда это может быть

T2M6
, и это нужно будет превратить в
N2T2M6 .

N (значение) должно соответствовать Т (значение). М6 всегда будет М6.


Другой пример:

T9M6 будет переводиться в N9T9M6



Вот мой код для загрузки текстового файла:

StreamReader reader = new StreamReader(fDialog.FileName.ToString());
string content = reader.ReadToEnd();
reader.Close();



Вот заявление RegEx.Replace, которое я придумала. Не уверен, что это правильно.

 content = Regex.Replace(content, @"(T([-\d.]))M6", "N1$1M6");



Кажется, он работает при поиске T5M6 и превращении его в N1T5M6 .

Но я не уверен, как превратить N (значение) в значение T. Например N5T5M6 .

Может кто-нибудь показать мне, как изменить мой код, чтобы справиться с этим?

Спасибо.

1 Ответ

3 голосов
/ 14 мая 2010

Как это:

string content = File.ReadAllText(fDialog.FileName.ToString());
content = Regex.Replace(content, @"T([-\d.])M6", "N$1T$1M6");

Кроме того, вам, вероятно, следует заменить [-\d.] на \d или -?\d\.?

...