在C#中声明一个高级正则表达式模式

时间:2014-12-24 18:15:58

标签: c# regex

我想从我的字符串中删除所有非字母数字字符,为此我使用了这个:

Regex rgx = new Regex("[^a-zA-Z0-9 -]");
string newString = rgx.Replace(oldString, "");

但是,我现在有了一个新的约束,除了字母数字字符外,还要保留撇号字符" '";

示例:对于此字符串" abcd1*%'",我希望得到" abcd1'"。

编辑:感谢Alex K提供的解决方案,它正在运作。我现在正试图让这个正则表达式更复杂,我现在想要保留所有撇号字符"'",但只有字母数字字符包围的叛逆字符" x&# 39; X&#34 ;;

示例:对于此字符串" abc'd1*%'",我希望得到" abc'd1"。

1 个答案:

答案 0 :(得分:3)

只需将其添加到字符类[^a-zA-Z0-9' -],因为它包含将删除的字符列表。

最好在不需要创建实例的情况下使用静态Regex.Replace()