簡體   English   中英

僅3個特定字詞的字符串匹配

[英]String match of only 3 specific words

我希望正則表達式匹配只包含單詞A,I和D且沒有任何順序或排序的字符串

還:如果字符串的字母不是,則不進入if

我嘗試過|| 和其他符號,但仍然無法理解

不必是正則表達式,我只是想找到一種解決方法

String message = "AIDDDAAIDAAA"
if(message.matches("(A|D|I)")){

         System.out.println("Matches");
}

您可以在方括號內使用所有感興趣的字符。 要匹配出現在方括號中的這些字符的一個或多個,請在其后附加+ message字符串應完全僅由這些字符組成,才能將其視為匹配項。

嘗試這個。

String message  = "ADAIAIAIAIAIADDDAI";
if(message .matches("[ADI]+")) {
    System.out.println("Matches");
}

既然你問“字”,我想ADI站在了字與一個以上的字母,並且這就是為什么你不使用字符類的reaason [ADI] 您只需要添加+因為該message包含更多單詞。

    String message = "AIDDDAAIDAAA";
    if (message.matches("(A|D|I)+")) {
        System.out.println("Matches");
    }

scigs答案也可以。

您可以使用字符串替換執行類似的操作:

String message = "AIDDDAAIDAAA";
message = message.replace("A","")
    .replace("I","")
    .replace("D","");
if (message.equals("")) {
    //do your thing
}

您可以只檢查組成字符串的每個字符:

String message = "AIDDDAAIDAAA";
boolean matches = true;
for (int i=0; i<message.length(); i++;){
    if (message.charAt(i)!='A' && message.charAt(i)!='I' && message.charAt(i)!='D'){
        matches = false;
        break;
    }
}
if (matches) System.out.println("Matches");

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM