ASP.NET - 正则表达式排除特定字符
问题描述:
我需要一个正则表达式,它可以接受所有字母(区分大小写的A-Z),数字(0-9),空格和大多数字符。该字段不得接受重音符(ÁÉÚÍÓ),制表符或以下字符:反斜杠(),小于(<),大于(>),代字号(〜),等于(=),双引号(“)或逗号(,)ASP.NET - 正则表达式排除特定字符
关于我需要什么类型的正则表达式的任何想法?
答
像这样的东西应该工作:
^([A-Za-z0-9 ]+)$
它将匹配foo bar 1234 FOO BAR
但不foo bar 1234 FOO BAR dd
或foo bar 1234 FOO BAR\
注:然后,您可以添加大多数字符方括号内。
编辑:foo bar 1234 FOO BAR dd
包含一个标签(\t
)字符,但它正在缩小。
答
我想这应该你想要的字符
(?:[^\p{L}\\<>~=",\t]|[A-Za-z])
[]
表示一个字符类,还有你可以把所有的字符,你要允许
[^]
表示否定字符类,所有里面的字符是不允许的。
所以,我不知道一个预定义的类,它包含所有不在A-Z中的字母,因此我会去替换。
第一否定类包含在\p{L}
所有字母,其余的都是你不想让其他角色,但因为你要允许A-Z
,他们也是\p{L}
必须再次让他们。这是在第二部分完成(|
是一个替代),我允许[A-Za-z]
。
所以完整的正则表达式应该是这个样子
^(?:[^\p{L}\\<>~=",]|[A-Za-z])+$
这似乎仍然接受:”和重音字符 – Theomax 2012-01-31 10:35:18
我与http://regexpal.com/尝试过了,'' ,''''和','导致不匹配。 – npinti 2012-01-31 10:39:49