正则表达式 - 如何创建

时间:2012-10-12 18:37:41

标签: c# regex data-annotations

我正在寻找一个正则表达式,我的在线研究让我到处都是。这就是我要做的事情:

[Required]
[RegularExpression("MyRegExString", ErrorMessage = "Use only valid characters.")]
public string Name { get; set; }

我想允许我的用户输入任何字母字符(大写或小写),数字,有空格,只有_(下划线),$,#,*,(,),+,@,(逗号)和'(撇号)。

任何人都可以帮我生成这个字符串吗?

3 个答案:

答案 0 :(得分:5)

只需将它们全部输入到一个字符类中,并要求它们整个字符串由此类中的字符组成(分别在开头和结尾放置^$个锚点):

"^[a-zA-Z0-9_ $#*()+@,']*$"

正则表达式还有一个内置字符类\w,它匹配字母(大写和小写),数字或下划线,允许这个稍短的版本:

"^[\w $#*()+@,']*$"

如果您想禁止使用空字符串,请在末尾使用+代替*

答案 1 :(得分:1)

\w表示任何字母字符,数字或下划线。休息必须逐个添加,但在某些环境中,美元符号应该由\转义,因为没有它会表示字符串的结尾。符号^表示字符串的开头。明星*具有“无或更多”的含义,[...]具有“内部任何角色”的含义。

^[\w \$#*()+@,']*$

答案 2 :(得分:0)

使用^[a-zA-Z]+$并在[...]内添加您想要的任何字符。

某些特殊字符需要\转义。

示例:

/^[a-zA-Z!”$%&’()*\+,\/;\[\\\]\^_{|}~]+$/