我想在字符串中找到所有特殊字符并替换为连字符( - )
我正在使用以下代码
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巴 - 正则表达式替换----
我在输出中多次出现连字符(---)。
我想得到像这样的东西
FOO-BAR-正则表达式替换
我如何实现这个
任何帮助将不胜感激
由于 迪普
答案 0 :(得分:11)
为什么不这样做:
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();
}
答案 1 :(得分:10)
尝试使用模式:"[^a-zA-Z]+"
- 即替换一个或多个非alpha(但您可能允许使用数字?)。
答案 2 :(得分:1)
这不会起作用吗?
string pattern = "[^a-zA-Z]+";