Java 正则表达式:检查字符串是否包含任何给定字符

Java 正则表达式:检查字符串是否包含任何给定字符,java,regex,Java,Regex,我需要检查字符串是否包含以下任何字符: Á,À,Ã,Ê,Í,Ó,Õ,Ú,Ú 我在考虑做一个实验 “blá”.contains(regexExpression) 我想得对吗?如果是,我怎么做?我不知道正则表达式将如何进行查看。在这里,您可以找到一个关于如何使用正则表达式实现某些事情的很好的参考 请注意,matches(regex)仅当整个字符串与regex匹配时才会返回true。如果您只想知道字符串中是否有一个指定字符,请使用以下命令: String input = "blá"; input.to

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

Á,À,Ã,Ê,Í,Ó,Õ,Ú,Ú

我在考虑做一个实验

“blá”.contains(regexExpression)

我想得对吗?如果是,我怎么做?我不知道正则表达式将如何进行查看。在这里,您可以找到一个关于如何使用正则表达式实现某些事情的很好的参考

请注意,
matches(regex)
仅当整个字符串与regex匹配时才会返回true。如果您只想知道字符串中是否有一个指定字符,请使用以下命令:

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

编辑:如果需要匹配更多的unicode字符,请查看unicode参考。

根据我的经验,最好不要使用字符,而是使用十六进制表示法

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

'Á' - 0x00C1
'á' - 0x00E1
您可以在此处找到的任何符号的十六进制代码。把这封信放到搜索栏里

您的正则表达式将是:

[\x{00c1}\x{00e1}]++
这将在PHP中工作。如果确定,Java中的将是\u00c1\u00e1

您还可以使用范围:

ÀÁÂÃÄÅÆ will be [\u00c0-\u00c6]++
拉丁语副刊

如果需要从某个范围中查找任意符号,可以使用以下re:

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