2012-03-09 81 views
1

我需要在我的應用程序中驗證文本欄。這不能包含數字或特殊字符,所以我試過這個正則表達式: [A-ZA-Z] * 問題是,當我把一個數字或一個特殊的字符在中間或結束時,這個正則表達式不起作用的字符串。正則表達式([A-Za-z] *)是否與數字和特殊字符匹配?

+1

的東西太簡單了,顯示沒有以前的研究有太多的重複: (那麼,*你告訴我*什麼'[A-ZA-Z] *'在正則表達式中意味着什麼,然後*我會告訴你*爲什麼它不起作用... – 2012-03-09 22:08:35

回答

4

你應該使用這樣的:

^[A-Za-z]+$ 

匹配(長度爲1以上)的文本只包含ASCII字母。

+0

我向你致敬anubhava。在第一次嘗試時輸入了30個字符 – 2012-03-09 22:10:33

+0

這裏和所有的SO社區一樣,人們對於這樣的簡單問題提出了很快的答案 – anubhava 2012-03-09 22:13:56

2

繼續嘗試^[A-Za-z]*$

1

您可以使用下面的正則表達式:

Pattern p = Pattern.compile("^[A-Za-z]*$"); 

見正則表達式,規格清單上http://docs.oracle.com/javase/1.4.2/docs/api/java/util/regex/Pattern.html

你描述不會有任何效果的圖案。如果沒有開始和結束鍵,模式將查找匹配的子字符串。由於空字符串也是允許的(星號表示0或更多字符),所以可以簡單地在任何地方使用空字符串。

+0

如果我們想讓字符串接受空格char在中間? – user1260270 2012-05-25 23:01:05

+0

一個空格字符?在這種情況下,你可以使用'^ [A-Za-z] *([A-Za-z] *)?$' – 2012-05-26 18:39:27

0

你檢查幫我驗證日期時間型YYYY-MM-DDTHH:MM:ss.sssZ或 YYYY-MM-DD

^(((19|20)[0-9][0-9])-(0?[1-9]|1[012])-(0?[1-9]|[12][0-9]|3[01]))|(((19|20)[0-9][0-9])-(0?[1-9]|1[012])-(0?[1-9]|[12][0-9]|3[01])T([01]?[0-9])|([2][0123]):([]?[0-9]):([]?[0-9])\.([0-9][0-9][0-9][Z]))$ 
相關問題