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