Regex zum Überprüfen mit beginnt mit http: //, https: // oder ftp: //
Ich bin zusammen mit einem regex zu überprüfen, ob ein Wort beginnt mit http://
oder https://
oder ftp://
mein code ist wie folgt,
public static void main(String[] args) {
try{
String test = "http://yahoo.com";
System.out.println(test.matches("^(http|https|ftp)://"));
} finally{
}
}
Druckt es false
. Ich habe auch überprüft stackoverflow-post Regex zu testen, wenn die Zeichenfolge beginnt mit http://oder https://
Regex scheint zu Stimmen aber warum ist es nicht passend?. Ich habe sogar versucht ^(http|https|ftp)\://
und ^(http|https|ftp)\\://
InformationsquelleAutor der Frage Abhishek | 2011-11-09
Du musst angemeldet sein, um einen Kommentar abzugeben.
Benötigen Sie eine gesamte Eingabe match hier.
Bearbeiten:(Basierend auf @davidchambers's Kommentar)
InformationsquelleAutor der Antwort Prince John Wesley
Es sei denn, es gibt einige zwingenden Grund für die Verwendung von regex ist, würde ich einfach String verwenden.startsWith:
Ich würde mich nicht Wundern, wenn das schneller ist, auch.
InformationsquelleAutor der Antwort Randall Cook
Wenn Sie wollen, tun Sie es in der groß-und Kleinschreibung Weg, das ist besser:
InformationsquelleAutor der Antwort user1079877
test.matches () - Methode überprüft alle text.verwenden Sie test.finden()
InformationsquelleAutor der Antwort shift66
Ich denke die regex /string-parsing-Lösungen sind toll, aber für diesen bestimmten Kontext, wie es scheint, es würde Sinn machen einfach zu verwenden java-url-parser:
https://docs.oracle.com/javase/tutorial/networking/urls/urlInfo.html
Entnommen aus dieser Seite:
ergibt die folgenden:
InformationsquelleAutor der Antwort gdiz