正则表达式允许分号通过

时间:2014-11-16 02:35:54

标签: c# regex

我试图过滤除字母,数字,空格,(,),/, - 和...之外的任何内容。 这是我正在使用的代码。它做了一些过滤,但允许引号,分号和其他一些东西。我哪里出错了?

filteredst = Regex.Replace(st, @"^[a-zA-Z0-9 .()/-]+", String.Empty);

感谢您的时间。

1 个答案:

答案 0 :(得分:2)

您需要将否定运算符放在类中,而不是将其作为字符串锚点的开头。

Regex.Replace(st, @"[^a-zA-Z0-9 .()/-]+", String.Empty);

示例:

String s = @"foo/bar ''''(baz.) """"12-34;:;;!%$@";
String r = Regex.Replace(s, @"[^a-zA-Z0-9 .()/-]+", String.Empty);
Console.WriteLine(r); //=> "foo/bar (baz.) 12-34"