簡體   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