Reguläre Ausdrücke in Kotlin mit Beispielen: für Anfänger

Online Python-Trainer für Anfänger

Lernen Sie Python einfach ohne theoretische Überlastung. Lösen Sie praktische Aufgaben mit automatischer Überprüfung und schreiben Sie Code direkt im Browser.

Kurs starten

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 entspricht
  • containsMatchIn() — prüft, ob die Zeichenkette mindestens eine Übereinstimmung enthält
  • find() — findet die erste Übereinstimmung
  • findAll() — findet alle Übereinstimmungen
  • replace() — ersetzt Übereinstimmungen durch die angegebene Zeichenkette
  • split() — 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ültig


Beispiel 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-43


Beachten 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