如何在逗号分隔的字符串上的每个逗号之前附加已知字符串。 是否有正则表达式或不使用循环的东西 EX
给出字符串:
email, email2, email3 (etc...)
到
string suffix = "@iou.com"
string desiredResult = "email@iou.com, email2@iou.com, email3@iou.com
谢谢!
答案 0 :(得分:0)
您可以使用[^,\s]+
regexp,并替换为"$0"+suffix
:
var res = Regex.Replace(original, @"[^,\s]+", "$0"+suffix);
"$0"
是指正则表达式捕获的内容。
答案 1 :(得分:0)
你在这里:
string input = "email, email2, email3";
string suffix = "@iou.com";
//string desiredResult = "email@iou.com, email2@iou.com, email3@iou.com";
Console.WriteLine(Regex.Replace((input + ",")
.Replace(",", suffix + ","), @",$", ""));
希望这有帮助。
答案 2 :(得分:0)
或使用LINQ:
Console.WriteLine(string.Join(",",input.Split(',').Select(s => string.Concat(s, suffix))));
答案 3 :(得分:0)
您可以使用零长度捕获组。这可能是这样的:
\w+(?<ReplaceMe>),?
\w
匹配字母数字字符,名为“ReplaceMe”的命名捕获组匹配单词结尾与逗号开头(或任何其他非字母数字项目,包括任何其他非字母数字项目)之间的零长度空格字符串的结尾)。
然后你只需用附加的值替换ReplaceMe,如下所示:
Regex.Replace(original, @"\w+(?<ReplaceMe>),?", "@email.com");
这是正则表达式的an example。