как заменить некоторые символьные ч / б строки в c #? - PullRequest
3 голосов
/ 31 марта 2011

как заменить некоторые символьные ч / б строки в c #?

предполагаю

строка: 1-2-5-7-8-9-10-15

я использую функцию замены

когда я заменяю 5 на 2

он также заменяет последний 15 на 12 из-за 5 там.

так как я могу получить правильный вывод?

Ответы [ 6 ]

7 голосов
/ 31 марта 2011

Вы можете использовать это:

yourString.Split("-").Select(s => Regex.Replace(s, "^5$", "2")).Aggregate((a,b) => a + "-" + b);

В отличие от большинства других ответов здесь, это также обрабатывает случай, когда заменяемая строка находится в начале или конце входной строки.

4 голосов
/ 31 марта 2011
new Regex(@"\b5\b").Replace("1-2-5-7-8-9-10-15", "2");

\b соответствует границе слова.Это означает, что «-5-» будет соответствовать, но «-15-» не будет.

Это также будет обрабатывать случай, когда совпадение находится на краю строки и не имеет дефисс обеих сторон, например, «5-» и «-5».

3 голосов
/ 31 марта 2011

Вам нужно будет заменить -5- на -2-

2 голосов
/ 31 марта 2011

вы можете использовать регулярное выражение заменить и заменить на что-то вроде

[^\d]*5[^\d]*, чтобы соответствовать 5 без каких-либо чисел рядом с ним

2 голосов
/ 31 марта 2011

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

yourString = yourString.Replace("-5-","-2-");
0 голосов
/ 31 марта 2011

У вас есть разделитель?

например. Если у вас действительно есть строковая ссылка 1-2-5 ... вы можете заменить '-5' на -2.

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