2009-12-15 155 views
0

为什么这个正则表达式不起作用?我希望所有来代替我的字符串不是默认charaacters正则表达式拒绝非字母数字字符

法律是= A-ZA-z0-9-休息应及时更换,并没有被禁止的字符

protected string FormatToInvalidChars(string InputString) 
    { 
     string RegexPattern = @"(^[A-Za-z0-9]*)$"; 

      string s = Regex.Replace(InputString.Trim(), RegexPattern, "$1"); 

      return s; 

    } 

回答

1
string s = Regex.Replace(InputString.Trim(),@"[^A-Za-z0-9]+",""); 
+0

谢谢,似乎是合乎逻辑的。 ...现在:) – 2009-12-15 11:06:48

1

你的模式是没有返回感。你只用这种方式匹配单个字符的字符串。

你想要的是可能是一个空字符串替换

[^A-Za-z0-9] 

1

尝试以下操作:

Regex.Replace(InputString.Trim(), @"[^A-Za-z0-9-]", ""); 

(假设连字符也是合法的,因为你的问题说的)

相关问题