允许分号通过的正则表达式

本文关键字:正则表达式 | 更新日期: 2023-09-27 18:30:34

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

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

谢谢你的时间。

允许分号通过的正则表达式

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

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"