[英]REGEX Adding a string before comma c#
如何在逗号分隔的字符串上的每个逗号之前附加一个已知字符串。 是否有一个正则表达式或不使用循环EX的东西
给定的字符串:
email, email2, email3 (etc...)
至
string suffix = "@iou.com"
string desiredResult = "email@iou.com, email2@iou.com, email3@iou.com
谢谢!!
您可以使用[^,\\s]+
表达式,并替换为"$0"+suffix
:
var res = Regex.Replace(original, @"[^,\s]+", "$0"+suffix);
"$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 + ","), @",$", ""));
希望这可以帮助。
或使用LINQ:
Console.WriteLine(string.Join(",",input.Split(',').Select(s => string.Concat(s, suffix))));
您可以使用零长度捕获组。 这可能是这样的:
\w+(?<ReplaceMe>),?
\\w
匹配字母数字字符,名为“ ReplaceMe”的命名捕获组匹配单词结尾和逗号开头(或任何其他非字母数字项,包括字符串结尾)之间的零长度空格。 。
然后,您只需用附加值替换ReplaceMe,如下所示:
Regex.Replace(original, @"\w+(?<ReplaceMe>),?", "@email.com");
这是该正则表达式在起作用的示例 。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.