Heim > Java > javaLernprogramm > Warum funktioniert „String.matches()' mit regulären Ausdrücken nicht wie erwartet?

Warum funktioniert „String.matches()' mit regulären Ausdrücken nicht wie erwartet?

Linda Hamilton
Freigeben: 2024-11-26 05:18:10
Original
411 Leute haben es durchsucht

Why Doesn't `String.matches()` Work as Expected with Regular Expressions?

String.matches() stimmt nicht mit dem erwarteten regulären Ausdruck überein

Beim Versuch, ein bestimmtes Muster mit String.matches("[a-z ]"), ist es überraschend, dass es nicht wie erwartet funktioniert, obwohl die Zeichenfolge Kleinbuchstaben enthält Buchstaben.

Erklärung:

Die String.matches()-Methode in Java dient dazu, festzustellen, ob die gesamte Eingabezeichenfolge mit dem bereitgestellten regulären Ausdruck übereinstimmt. In diesem Fall versucht der Ausdruck „[a-z]“, einen einzelnen Kleinbuchstaben zu finden. Der Code überprüft jedoch jede Zeichenfolge im Wortarray, von der keine mit einem Kleinbuchstaben beginnt.

Lösung:

Um ein Muster innerhalb einer Zeichenfolge abzugleichen, eine sollte die Klassen Pattern und Matcher verwenden. Die Pattern-Klasse kompiliert den regulären Ausdruck in ein Matcher-Objekt, das dann verwendet werden kann, um nach Übereinstimmungen in der Eingabezeichenfolge zu suchen.

Hier ist eine modifizierte Version des Codes, der Pattern und Matcher verwendet, um Übereinstimmungen zu finden:

Pattern p = Pattern.compile("[a-z]+");
for(String s:words)
{
    Matcher m = p.matcher(s);
    if (m.find())
    {
        System.out.println(s);
    }
}
Nach dem Login kopieren

Dieser Code gibt jetzt korrekt „dkoe“ aus.

Das obige ist der detaillierte Inhalt vonWarum funktioniert „String.matches()' mit regulären Ausdrücken nicht wie erwartet?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage