2013-02-26 2 views
0

У меня есть строка, как показано нижекак использовать регулярное выражение замены в C#

A123459922 

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

Regex.Replace("A123459922","(\w{1})(\d*)"); 

Я не знаю точно, как я могу удалить первый символ и добавить «B» до конца этого? в конечном итоге что-то вроде этого

123459922B 
+3

Что случилось с Substring()? –

+0

«B» необходимо добавить только тогда, когда в начале есть 'A'? Или всегда независимо? –

+0

Я вижу, но просто хочу знать, как regex может применить к этой проблеме. – wikinevis

ответ

2

Я буду использовать тот же регулярное выражение вашего вопроса.

Вы можете посмотреть на это (для более сложных ситуаций)

Regex.Replace("A123459922",@"(\w{1})(\d*)", m => m.Groups[2].Value + "B"); 

См 3-ий параметр метода Replace. Это MatchEvaluator, который получает Match и возвращает заменяющую строку. Приведенные выше выражения эквивалентно:

private static void Main() 
{ 
    Regex.Replace("A123459922",@"(\w{1})(\d*)", Evaluator); 
} 

private static string Evaluator(Match m) { 
    return m.Groups[2].Value + "B"; 
} 

Вы в основном говорят: Я хочу, чтобы заменить the entire match на the 2nd group + the B character

+0

Вопрос, хотя и неясный, упоминает «первый символ». Не следует ли принимать во внимание ответы? – Jon

+0

спасибо, я хочу добавить B в конец строки – wikinevis

2

В соответствии с вашим данным ввода и вывода строки, например, вы можете сделать это просто с Substring() :

var newString = myString.Substring(1) + "B"; 
1

Попробуйте использовать это регулярное выражение:

Regex.Replace("A123459922", @"\w(.*)", "$1B");