替换字符串中的所有特殊字符IN C#

我想在字符串中找到所有特殊字符并替换为连字符(

我使用以下代码

string content = "foo,bar,(regular expression replace) 123"; string pattern = "[^a-zA-Z]"; //regex pattern string result = System.Text.RegularExpressions.Regex.Replace(content,pattern, "-"); 

产量

富巴 – 正则表达式替换—-

我在输出中多次出现连字符(—)。

我想得到一些像这样的东西

FOO-BAR-正则表达式替换

我如何实现这一目标

任何帮助,将不胜感激

谢谢Deepu

为什么不这样做:

 public static string ToSlug(this string text) { StringBuilder sb = new StringBuilder(); var lastWasInvalid = false; foreach (char c in text) { if (char.IsLetterOrDigit(c)) { sb.Append(c); lastWasInvalid = false; } else { if (!lastWasInvalid) sb.Append("-"); lastWasInvalid = true; } } return sb.ToString().ToLowerInvariant().Trim(); } 

尝试模式: "[^a-zA-Z]+" – 即替换一个或多个非alpha(但你可能允许使用数字?)。

这不行吗?

 string pattern = "[^a-zA-Z]+";