2013-07-19 51 views
3

我有一個驗證用戶名(僅包含字母表)的要求。但用戶正在輸入西班牙語。我不能使用普通的regx [A-Za-z]。 是否可以使用java正則表達式來驗證它? 對不同方法的任何建議也很好?Java對非英文正則表達式的支持

+1

閱讀[this](http://regexadvice.com/forums/thread/68749.aspx)! – NINCOMPOOP

+0

可能的dup http://stackoverflow.com/questions/1161507/regex-for-spanish-alphabets-in-coldfusion-8 – NINCOMPOOP

回答

2

使用基於Unicode字母符號:

\\p{L} 

你也可以創建Pattern.UNICODE_CASE選擇你的模式來獲得Unicode支持:

Pattern p = Pattern.compile(regex, Pattern.UNICODE_CASE); 
+0

您可能還需要在''Pattern.compile()''上指定'UNICODE_CASE'作爲標誌。 – berry120

+1

@ berry120:謝謝,還有。 – anubhava

2

你可以使用\p{IsAlphabetic},或在西班牙,你的情況下,可以使用[A-Za-zÁÉÍÓÚáéíóúÑñÜü]西班牙語是我的第一語言:-)