繁体   English   中英

REGEX在逗号C#之前添加字符串

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM