2011-03-24 182 views
0

我需要檢查是否字符串包含任何這樣的字符:正則表達式

A,A,A,E,E,I,O,O,O-,U,C

我在想做一個

「喇嘛」。載有(regexExpression)

的我在想吧?如果是這樣,我該怎麼做?我不知道如何將正則表達式

回答

3

看看regular-expressions.info。在那裏你可以找到一個關於如何使用正則表達式來實現特定事物的很好的參考。

請注意,matches(regex)只會返回true,如果整個字符串匹配的正則表達式。如果你只是想知道,如果指定的人物之一是String,使用此:

String input = "blá"; 
input.toUpperCase().matches(".*[ÁÀÃÉÊÍÓÕÔÚÇ].*"); 

編輯:如果你需要匹配更多的Unicode字符,看看在regular-expressions.info unicode的參考。

3
Pattern regex = Pattern.compile("[ÁÀÃÉÊÍÓÕÔÚÇ]"); 
Matcher regexMatcher = regex.matcher(subjectString.toUpperCase()); 
if (regexMatcher.find()) { 
    // Successful match 
} else { 
    // Match attempt failed 
} 
1

我我的經驗,最好不要使用字符,但使用十六進制表示

例如:

'Á' - 0x00C1 
'á' - 0x00E1 

一個你可以在這裏找到http://www.fileformat.info/info/unicode任何符號的十六進制代碼。只需將信件放入搜索字段即可。

你的正則表達式是:

[\x{00c1}\x{00e1}]++ 

這將在PHP工作。在Java將是\ u00c1 \ u00e1,如果一定要www.regular-expressions.info

您也可以使用範圍:如果您需要從Latin-1 Supplement範圍內發現的任何符號

ÀÁÂÃÄÅÆ will be [\u00c0-\u00c6]++ 

拉丁補充

,你可以使用下面的re:

[\p{InLatin-1_Supplement}]++