@Regex para verificar começa com http: //, https: // ou ftp: //

Estou enquadrando um regex para verificar se uma palavra começa comhttp:// ouhttps:// ouftp://, meu código é o seguinte,

     public static void main(String[] args) {
    try{
        String test = "http://yahoo.com";
        System.out.println(test.matches("^(http|https|ftp)://"));
    } finally{

    }
}

It printsfalse. Eu também verifiquei o stackoverflow post Regex para testar se a sequência começa com http: // ou https: //

O regex parece estar certo, mas por que não está correspondendo? Eu até tentei^(http|https|ftp)\:// e^(http|https|ftp)\\://

questionAnswers(5)

yourAnswerToTheQuestion