Разобрать строку с регулярным выражением - PullRequest
1 голос
/ 29 октября 2009

У меня есть строка, которую мне нужно проанализировать. Проблема в том, что некоторые части строки не всегда одинаковы.

a3: S8: [gmpage] S17: Глава GM NecrocideS12: тест [15158]

Первые 18 символов всегда одинаковы, так что они могут легко String.Substring().

Моя проблема в том, что символы S12: не всегда равны S12:, это может быть просто S26: - поэтому я не могу использовать простой String.Replace(). Мне нужно заменить эти 3 символа на : 

Как я могу сделать это с помощью регулярных выражений? Спасибо.

Ответы [ 2 ]

3 голосов
/ 29 октября 2009

Попробуйте это:

string input = "a3:S8:[gmpage]S17:Head GM NecrocideS12:test [15158]";
string output = Regex.Replace(myString, "NecrocideS\d\d:", "Necrocide:");
0 голосов
/ 30 октября 2009

Как насчет:

Regex reg = new Regex(@"\A(?<before>a3:S8:\[gmpage\])(?<delete>.{3})(?<after>:Head GM NecrocideS12:test \[15158\])\Z");
string input = @"a3:S8:[gmpage]S26:Head GM NecrocideS12:test [15158]";
string output = reg.Replace(input, "${before}${after}");

Это заменит S26 на ""

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...