如何编写仅匹配数字,文本,空格和仅两个特殊字符的正则表达式

时间:2012-11-27 07:33:21

标签: c# asp.net

如何编写仅匹配数字,文本和仅匹配这两个特殊字符的正则表达式#和 - [a-zA-Z0-9# - \ s] +其他任何东西都应该被拒绝

3 个答案:

答案 0 :(得分:3)

你可以使用与此相似的正则表达式

^(\d|[a-z]|[A-Z]|#|-)*$

在我用于检查c#中的正则表达式的代码下面:

string input = @"343243-2df---ds#SFD#FD";
string pattern = @"^(\d|[a-z]|[A-Z]|#|-)*$";

Console.WriteLine(Regex.Match(input, pattern).Success);
Console.ReadLine();

此外,对于将来的参考资料,您可以看到此正则表达式网站:http://www.regular-expressions.info/

答案 1 :(得分:3)

我相信以下模式适用于C#:

string pattern = @"^[a-zA-Z\d\s#-]*$";

我刚刚在C#interactive中尝试了几个测试用例:

Regex.Match("", pattern).Success
> true
Regex.Match("asdf 2F#-#-", pattern).Success
> true
Regex.Match("asdf~asdf", pattern).Success
> false

如果您不想接受空字符串,只需将模式中的*更改为+即可。此外,您没有说明您想在问题中匹配空格,但您的示例模式确实与空格匹配。如果您不想匹配空格,请删除\ s。

更新:根据罗林的建议编辑。

答案 2 :(得分:0)

试试这个:

^([a-z]|[A-Z]|[#]|[0-9]|[-])+$