【发布时间】:2011-04-15 18:15:18
【问题描述】:
我想从字符串中删除所有特殊字符。允许的字符是 A-Z(大写或小写)、数字 (0-9)、下划线 (_)、空格 ()、百分号 (%) 或点号 (.)。
我试过这个:
StringBuilder sb = new StringBuilder();
foreach (char c in input)
{
if ((c >= '0' && c <= '9') || (c >= 'A' && c <= 'Z') || (c >= 'a' && c <= 'z') | c == '.' || c == '_' || c == ' ' || c == '%')
{ sb.Append(c); }
}
return sb.ToString();
还有这个:
Regex r = new Regex("(?:[^a-z0-9% ]|(?<=['\"])s)", RegexOptions.IgnoreCase | RegexOptions.CultureInvariant | RegexOptions.Compiled);
return r.Replace(input, String.Empty);
但似乎没有任何效果。任何帮助将不胜感激。
谢谢!
【问题讨论】:
-
你看过 StackOverflow 上的this 线程吗?这家伙有一个你似乎想要的有效实现。
-
这是一种类型吗? "'z') | c == '.' ||”?
-
非常感谢您的所有回复。他们都为我工作。我刚刚意识到我忘了重新发布,这导致了它也在消除空白的问题。
-
@Matt Dawdy:我认为这是一个错字——“类型”也是如此:p
-
@Aasmund Eldhuset -- 这太有趣了。至少我对此并不粗鲁! :)
标签: c# special-characters