[英]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.