禁止使用特殊字符

时间:2011-05-05 14:59:07

标签: c# regex

更新

我刚刚意识到,如果不允许任何特殊字符而不是写每一个特殊字符呢?

这是我正在做的一个例子:http://cnn.com/news/latest.html&id=1因此只有当&处于开头或结尾时才会剥离。

下面的代码会删除这些(+,(,),;,")特殊字符并且工作正常

 static String StripSpcialChar(String param)
        {
            String result = null;
            if (param != null)
            {                
                Regex re = new Regex("\\&|\\(|\\)|\\<|\\>|\\\"|\\;|\n|\r|\\`");
                result = re.Replace(param, "");
                result = result.Trim();
            }
            return result;
        }

但我的问题是,如果他们在开头或结尾都有&,我怎么才能剥离它?

5 个答案:

答案 0 :(得分:1)

"&this is a test&&&".Trim('&');

答案 1 :(得分:1)

尝试

Regex re = new Regex("(^&)|(&$)|\\(|\\)|\\<|\\>|\\\"|\\;|\n|\r|\\`");

答案 2 :(得分:0)

经过测试并正常工作。使用以下表达式:

Regex re = new Regex("\\(|\\)|\\<|\\>|\\\"|\\;|\n|\r|\\`|^&|&$");

用法:

Console.WriteLine(StripSpcialChar("ali&")); // prints ali
Console.WriteLine(StripSpcialChar("&ali")); // prints ali
Console.WriteLine(StripSpcialChar("a&li")); // prints a&li

如果您需要在的开头或结尾处删除,请尝试以下操作:

Regex re = new Regex("\\(|\\)|\\<|\\>|\\\"|\\;|\n|\r|\\`|\b&|&\b");

答案 3 :(得分:0)

这个怎么样:

string newString = string.Trim(oldString, '&');

答案 4 :(得分:0)

正则表达式使用^表示“字符串的开头”,使用$表示“字符串结尾”:
"^&|&$"
应匹配字符串开头或结尾的&符号(&amp;)