2015-07-09 3 views
1

Как я могу добавить известную строку перед каждой комой в строке, разделенной запятой. Есть регулярное выражение для этого или что-то, что не использует рамочную EXREGEX Добавление строки перед запятой C#

данная строка:

email, email2, email3 (etc...) 

в

string suffix = "@iou.com" 
string desiredResult = "[email protected], [email protected], [email protected] 

Спасибо !!

ответ

0

Вы можете использовать [^,\s]+ регулярное выражение, и заменить "$0"+suffix:

var res = Regex.Replace(original, @"[^,\s]+", "$0"+suffix); 

"$0" относится к содержанию, захваченном регулярным выражением.

Demo.

0

Или с помощью LINQ:

Console.WriteLine(string.Join(",",input.Split(',').Select(s => string.Concat(s, suffix)))); 
0

Вы можете использовать нулевую длину группу захвата. Вот как это может выглядеть:

\w+(?<ReplaceMe>),? 

В \w матчи буквенно-цифровых символов, и назвали захват группы под названием «ReplaceMe» соответствует нулевой длины пространство между концом слова и начала запятой (или любой другой не буквенно-цифровой элемент, включая конец строки).

Тогда вы просто заменить ReplaceMe с добавленным значением, например:

Regex.Replace(original, @"\w+(?<ReplaceMe>),?", "@email.com"); 

Вот an example ofthat регулярного выражения в действии.

Смежные вопросы