如何写这个正则表达式?

时间:2012-10-25 18:55:16

标签: c# regex replace

我正在尝试用空格替换除字母,数字和一些特殊字符之外的所有字符。这是我正在使用的代码行:

documentText = Regex.Replace(documentText, @"^((?![a-zA-Z0-9%\-\@\$&']).*)$", " ");

它不起作用。我在这样的示例文本上测试了它:

[]\^|+*(){} ~#%=/<>-!@$&_'",.?;:
this should stay

它会删除所有内容。

2 个答案:

答案 0 :(得分:3)

使用以下正则表达式:

[^a-zA-Z0-9%\-@$&']

使用^反转字符类,这对于您正在寻找的内容而言是完美的,而不使用否定前瞻。

答案 1 :(得分:1)

你正在搜索。*这意味着0或者更多的任何角色......这就是为什么它会删除所有内容。