Reguläre Ausdrücke in Kotlin: Vollständiger Leitfaden für Anfänger
Reguläre Ausdrücke (Regex) sind ein leistungsstarkes Werkzeug zum Suchen, Ersetzen und Überprüfen von Zeichenketten anhand eines Musters. In Kotlin wird die Arbeit mit regulären Ausdrücken über die Klasse Regex implementiert, die praktische Methoden zur Textverarbeitung bereitstellt. In diesem Artikel behandeln wir die Grundlagen regulärer Ausdrücke in Kotlin mit anschaulichen Beispielen, die Ihnen helfen, dieses Werkzeug schnell zu erlernen.
Was ist ein regulärer Ausdruck?
Ein regulärer Ausdruck ist eine Zeichenfolge, die ein Muster für die Suche in Text definiert. Beispielsweise findet das Muster \\\\d{3} drei aufeinanderfolgende Ziffern, und [A-Z]+ findet einen oder mehrere Großbuchstaben.
In Kotlin wird für die Arbeit mit Regex die Klasse Regex verwendet, die auf zwei Arten erstellt werden kann:
// Methode 1: über den Konstruktorval regex1 = Regex("\\\\d+")
// Methode 2: über die Erweiterung toRegex()val regex2 = "\\\\d+".toRegex()Grundlegende Regex-Methoden in Kotlin
Die Klasse Regex bietet mehrere wichtige Methoden für die Arbeit mit Zeichenketten:
matches()— prüft, ob die gesamte Zeichenkette dem Muster entsprichtcontainsMatchIn()— prüft, ob die Zeichenkette mindestens eine Übereinstimmung enthältfind()— findet die erste ÜbereinstimmungfindAll()— findet alle Übereinstimmungenreplace()— ersetzt Übereinstimmungen durch die angegebene Zeichenkettesplit()— teilt die Zeichenkette anhand des Musters auf
Beispiel 1: Überprüfung einer E-Mail-Adresse
Beginnen wir mit einem praktischen Beispiel – der Überprüfung der Gültigkeit einer E-Mail-Adresse:
fun isValidEmail(email: String): Boolean { val emailRegex = Regex("^[A-Za-z0-9+_.-]+@[A-Za-z0-9.-]+\\\\.[A-Za-z]{2,}$") return emailRegex.matches(email)}
fun main() { val emails = listOf( "user@example.com", "invalid-email", "test@domain.co.uk", "@gmail.com" ) emails.forEach { email -> println("$email: ${if (isValidEmail(email)) "gültig" else "ungültig"}") }}Ergebnis der Ausführung:
user@example.com: gültiginvalid-email: ungültigtest@domain.co.uk: gültig@gmail.com: ungültigBeispiel 2: Extrahieren von Telefonnummern
Angenommen, wir haben einen Text mit verschiedenen Telefonnummern und möchten alle Nummern im Format +7 (XXX) XXX-XX-XX extrahieren:
fun extractPhoneNumbers(text: String): List { val phoneRegex = Regex("""\\+7 \\(\\d{3}\\) \\d{3}-\\d{2}-\\d{2}""") return phoneRegex.findAll(text).map { it.value }.toList()}
fun main() { val text = """ Kontakte: Manager: +7 (495) 123-45-67 Support: +7 (812) 987-65-43 Zusätzlich: 8-800-555-35-35 """.trimIndent() val phones = extractPhoneNumbers(text) println("Gefundene Nummern:") phones.forEach { println(it) }} Ergebnis:
Gefundene Nummern:+7 (495) 123-45-67+7 (812) 987-65-43Beachten Sie: Die Nummer 8-800-555-35-35 wurde nicht gefunden, da sie nicht unserem Muster entspricht.
Beispiel 3: Ersetzen und Bereinigen von Text
Reguläre Ausdrücke eignen sich hervorragend zum Ersetzen von Textteilen. Beispielsweise entfernen wir alle HTML-Tags aus einer Zeichenkette:
fun removeHtmlTags(html: String): String { val tagRegex = Regex("<[^>]*>") return tagRegex.replace(html, "")}
fun main() { val htmlText = """ <h1>Überschrift</h1> <p>Dies ist ein <b>wichtiger</b> Text.</p> <a href="link.html">Link</a> """.trimIndent() val cleanText = removeHtmlTags(htmlText) println("Bereinigter Text:") println(cleanText)}Ergebnis:
Blogs
Buchempfehlungen
Lesen Sie auch
Wie man in 30 Minuten eine REST API in Rust schreibt: für Anfänger
Einführung in Go im Jahr 2025: Wo Anfänger beginnen sollten
PHP im Jahr 2025: Neue Funktionen und Verbesserungen
Generics in Java: warum sie nützlich sind und wie man sie als Anfänger verwendet
So erhalten Sie einen Timestamp in Android mit Kotlin: vollständiger Leitfaden