回答
您可以使用正則表達式:^[a-z-]+$
^
:啓動錨$
:尾錨[..]
:字符類a-z
:任何一個小寫字母-
:文字連字符。連字符通常是char類中的一箇中間字符,但如果其作爲字符類的字符處理,則其作爲的第一個或末尾的。+
:量詞爲一個或多個
如果你想允許空字符串,你可以用*
現在這裏是OP可能會理解的解釋。很好(+1) – 2010-09-27 12:56:36
非常感謝你,我發現正則表達式非常困難,我想不出任何其他方法來手動解決這個問題:/(我認爲沒有經驗是那裏的問題;)) – tom 2010-09-27 13:23:07
@tom不要讓它得到你失望。正則表達式是可怕的野獸。需要一些程序員幾年才能理解它們。如果你嘗試,你會發現最終結果。這是一個Java在線正則表達式測試器:http://www.fileformat.info/tool/regex.htm。你可能想玩一下,它可能會幫助你更好地理解事物。 – 2010-09-27 15:05:12
更換+
如果字符串不匹配^[a-z-]*$
,則不允許使用的字符被輸入。這種模式是anchored,這樣就考慮了整個字符串,並使用repeatedcharacter class(星號指定零個或多個匹配項,因此將接受一個空字符串)以確保只使用允許的字符。
我認爲連字符( - )應該被轉義。 – 2010-09-27 12:36:21
@Faisal連字符如果是最後一個字符,則不需要在字符類中轉義。 – 2010-09-27 12:37:51
downvoters請解釋嗎? – 2010-09-27 12:39:28
如果允許大寫使用本:
^[A-Za-z-]+?$
否則:
^[a-z-]+?$
如果字符串這個表達式匹配^[a-z\-]*$
然後它的罰款。
@Tingu如果它是最後一個字符,則不需要在字符類中跳過連字符。看看[本文](http://www.regular-expressions.info/charclass.html)中名爲「元字符內部的元字符」的部分 – 2010-09-27 12:40:55
如果字符串匹配這個正則表達式,那麼它很好 - 不是嗎? ?順便說一句,連字符在字符類中的第一個/最後一個字符時不需要轉義@Tingu – Amarghosh 2010-09-27 12:41:04
@Amarghosh謝謝你指出。修復了答案。 – 2010-09-27 12:49:52
- 1. 正則表達式的正則表達式的Java字符串
- 2. Java的正則表達式字符串
- 3. 正則表達式正則表達式匹配字符串
- 4. 正則表達式(正則表達式)的子字符串
- 5. Javascript正則表達式 - 正則表達式拆分字符串
- 6. 字符串模式,正則表達式
- 7. 字符串使用正則表達式替換正則表達式字符類
- 8. 字符串不能包含java正則表達式元字符
- 9. 字符串中的Java正則表達式字符
- 10. 正則表達式則表達式匹配的字符串
- 11. 用字符串表示正則表達式還是不用字符串表達正則表達式?
- 12. java正則表達式模式字符串格式
- 13. Java正則表達式轉義字符
- 14. Java正則表達式轉義字符
- 15. java的正則表達式$元字符
- 16. Java正則表達式用連字符
- 17. java正則表達式可選字符
- 18. 正則表達式匹配字符串
- 19. 字符串替換正則表達式
- 20. 字符串正則表達式
- 21. 正則表達式從字符串
- 22. 正則表達式測試 「\」 字符串
- 23. 替換字符串正則表達式
- 24. 正則表達式從字符串
- 25. 正則表達式字符串「offerDate(1,30)」
- 26. 正則表達式提取字符串
- 27. (=字符串)的正則表達式
- 28. 正則表達式從字符串
- 29. 正則表達式兩個字符串
- 30. 正則表達式替換字符串
你確定你需要一個正則表達式嗎?在我看來,你可以簡單地檢查每個輸入的字符。即'如果(ch> ='a')'等 – Sjoerd 2010-09-27 12:35:42
你不認真發佈這樣的問題來打擾人們嗎?在互聯網上閱讀簡單的正則表達式教程可以在10分鐘內回答您的問題。 [Google help!](http://www.google.com/search?q=regex+java+tutorial)(是的,我認爲你的問題有害) – erikbwork 2010-09-27 12:38:02
'[^ az-]'匹配除az以外的任何字符和連字符。 – Amarghosh 2010-09-27 12:43:40