ASP.NET - 正则表达式排除特定字符

问题描述:

我需要一个正则表达式,它可以接受所有字母(区分大小写的A-Z),数字(0-9),空格和大多数字符。该字段不得接受重音符(ÁÉÚÍÓ),制表符或以下字符:反斜杠(),小于(<),大于(>),代字号(〜),等于(=),双引号(“)或逗号(,)ASP.NET - 正则表达式排除特定字符

关于我需要什么类型的正则表达式的任何想法?

像这样的东西应该工作:

^([A-Za-z0-9 ]+)$

它将匹配foo bar 1234 FOO BAR但不foo bar 1234 FOO BAR ddfoo bar 1234 FOO BAR\

注:然后,您可以添加大多数字符方括号内。

编辑:foo bar 1234 FOO BAR dd包含一个标签(\t)字符,但它正在缩小。

+0

这似乎仍然接受:”和重音字符 – Theomax 2012-01-31 10:35:18

+0

我与http://regexpal.com/尝试过了,'' ,''''和','导致不匹配。 – npinti 2012-01-31 10:39:49

我想这应该你想要的字符

(?:[^\p{L}\\<>~=",\t]|[A-Za-z]) 

[]表示一个字符类,还有你可以把所有的字符,你要允许

[^]表示否定字符类,所有里面的字符是不允许的。

所以,我不知道一个预定义的类,它包含所有不在A-Z中的字母,因此我会去替换。

第一否定类包含\p{L}所有字母,其余的都是你不想让其他角色,但因为你要允许A-Z,他们也是\p{L}必须再次让他们。这是在第二部分完成(|是一个替代),我允许[A-Za-z]

所以完整的正则表达式应该是这个样子

^(?:[^\p{L}\\<>~=",]|[A-Za-z])+$