2011-03-24 187 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}]++