正则表达式

时间:2011-03-24 15:21:43

标签: java regex

我需要检查字符串是否包含以下任何字符:

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

我在考虑做一个

  

“BLA”。载(regexExpression)

我在想什么?如果是这样,我该怎么办?我不知道正则表达式将如何

3 个答案:

答案 0 :(得分:3)

看看regular-expressions.info。在那里,您可以找到关于如何使用正则表达式实现某些事物的良好参考。

请注意,如果整个字符串与正则表达式匹配,matches(regex)将仅返回true。如果您只想知道其中一个指定的字符是否在String中,请使用:

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

编辑:如果您需要匹配更多unicode字符,请查看regular-expressions.info unicode引用。

答案 1 :(得分:3)

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

答案 2 :(得分:1)

我的经验,最好不要使用角色,而是使用十六进制表示

例如:

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

您可以在此处找到的任何符号的十六进制代码http://www.fileformat.info/info/unicode。只需将信件写入搜索栏。

你的正则表达式将是:

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

这适用于PHP。如果确定www.regular-expressions.info

,在Java中将是\ u00c1 \ u00e1

您也可以使用范围:

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

拉丁语补充

如果您需要查找Latin-1 Supplement范围内的任何符号,可以使用以下代码:

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