繁体   English   中英

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

[英]Regular Expression: check if a string contains any given characters

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

Á,À,Ã,É,Ê,Í,Ó,Õ,Ô,Ú,Ç

我当时想做一个

“blá”。包含(regexExpression)

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

看一下regular-expressions.info 在那里,您可以找到有关如何使用正则表达式实现某些目标的很好的参考。

请注意,如果整个字符串与regex匹配,则matchs matches(regex)将仅返回true。 如果只想知道指定字符之一是否在字符串中,请使用以下命令:

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

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

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

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

例如:

'Á' - 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补码范围中找到任何符号,则可以使用以下代码:

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM