2012-01-31 83 views
0

我需要一個正則表達式,它可以接受所有字母(區分大小寫的A-Z),數字(0-9),空格和大多數字符。該字段不得接受重音符(ÁÉÚÍÓ),製表符或以下字符:反斜槓(),小於(<),大於(>),代字號(〜),等於(=),雙引號(「)或逗號(,)ASP.NET - 正則表達式排除特定字符

關於我需要什麼類型的正則表達式的任何想法?

回答

3

像這樣的東西應該工作:

^([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

3

我想這應該你想要的字符

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

[]表示一個字符類,還有你可以把所有的字符,你要允許

[^]表示否定字符類,所有裏面的字符是不允許的。

所以,我不知道一個預定義的類,它包含所有不在A-Z中的字母,因此我會去替換。

第一否定類包含\p{L}所有字母,其餘的都是你不想讓其他角色,但因爲你要允許A-Z,他們也是\p{L}必須再次讓他們。這是在第二部分完成(|是一個替代),我允許[A-Za-z]

所以完整的正則表達式應該是這個樣子

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