Testen von URLs mit Pattern.matches()
Im vorherigen Schritt haben wir ein RegEx-Muster für URLs definiert und es in ein Pattern
-Objekt kompiliert. Jetzt verwenden wir dieses Muster, um zu prüfen, ob verschiedene Zeichenketten gültige URLs sind, indem wir die Methode Pattern.matches()
nutzen.
Die Methode Pattern.matches(regex, input)
ist eine bequeme Möglichkeit, zu prüfen, ob eine gesamte Eingabezeichenkette einem gegebenen regulären Ausdruck entspricht. Sie kompiliert den RegEx und vergleicht die Eingabe damit in einem einzigen Schritt.
Lassen Sie uns die Datei UrlValidator.java
ändern, um einige Beispiel-URLs zu testen.
-
Öffnen Sie die Datei UrlValidator.java
im WebIDE-Editor, falls sie noch nicht geöffnet ist.
-
Ändern Sie die main
-Methode, um den folgenden Code einzufügen. Sie fügen diesen Code nach der Zeile Pattern pattern = Pattern.compile(urlRegex);
hinzu.
import java.util.regex.Pattern;
public class UrlValidator {
public static void main(String[] args) {
// Define a simple regex pattern for a URL
String urlRegex = "^(http|https)://[^\\s/$.?#].[^\\s]*$";
// Compile the regex pattern
Pattern pattern = Pattern.compile(urlRegex);
// Test some URLs
String url1 = "http://www.example.com";
String url2 = "https://example.org/path/to/page";
String url3 = "ftp://invalid-url.com"; // Invalid scheme
String url4 = "http:// example.com"; // Invalid character (space)
System.out.println("\nTesting URLs:");
boolean isUrl1Valid = Pattern.matches(urlRegex, url1);
System.out.println(url1 + " is valid: " + isUrl1Valid);
boolean isUrl2Valid = Pattern.matches(urlRegex, url2);
System.out.println(url2 + " is valid: " + isUrl2Valid);
boolean isUrl3Valid = Pattern.matches(urlRegex, url3);
System.out.println(url3 + " is valid: " + isUrl3Valid);
boolean isUrl4Valid = Pattern.matches(urlRegex, url4);
System.out.println(url4 + " is valid: " + isUrl4Valid);
}
}
Hier ist, was wir hinzugefügt haben:
- Wir haben vier
String
-Variablen (url1
, url2
, url3
, url4
) definiert, die verschiedene Beispielzeichenketten enthalten, einige gültige URLs gemäß unserem einfachen Muster und einige ungültige.
- Wir haben eine Ausgabebefehl hinzugefügt, um die Ausgabe klarer zu gestalten.
- Wir haben
Pattern.matches(urlRegex, url)
für jede Testzeichenkette verwendet. Diese Methode gibt true
zurück, wenn die gesamte Zeichenkette dem urlRegex
-Muster entspricht, und false
sonst.
- Wir haben das Ergebnis der Validierung für jede URL ausgegeben.
-
Speichern Sie die Datei UrlValidator.java
.
-
Kompilieren Sie den geänderten Code im Terminal:
javac UrlValidator.java
Wiederum wird bei erfolgreichem Kompilieren keine Ausgabe angezeigt.
-
Führen Sie das kompilierte Programm aus:
java UrlValidator
Sie sollten eine Ausgabe ähnlich der folgenden sehen:
URL Regex Pattern Defined.
Testing URLs:
http://www.example.com is valid: true
https://example.org/path/to/page is valid: true
ftp://invalid-url.com is valid: false
http:// example.com is valid: false
Diese Ausgabe zeigt, dass unser einfaches RegEx-Muster die ersten beiden Zeichenketten korrekt als gültige URLs (gemäß dem Muster) und die letzten beiden als ungültig identifiziert hat.
Sie haben nun erfolgreich die Methode Pattern.matches()
verwendet, um Zeichenketten gegen ein reguläres Ausdrucksmuster in Java zu testen.