Regex-Literale
Grundlagen von Patterns
Regex-Literale ist eine kostenlose Ruby Academy-Lektion auf CoddyKit. Dies ist Lektion 1 von 4. Du kannst die komplette Lektion unten kostenlos lesen – dann übst du sie direkt im Browser mit einem integrierten Code-Editor und einem KI-Tutor rund um die Uhr. Sie ist Teil des Ruby Academy-Lernpfads, und dein Fortschritt wird über Web und CoddyKit-App synchronisiert. Der Ruby Academy-Kurs umfasst insgesamt 4 Lektionen.
Was ist ein regulärer Ausdruck?
Ein regulärer Ausdruck (Regex) ist ein Muster, mit dem Text gefunden wird. In Ruby ist ein Regex ein Objekt erster Klasse der Klasse Regexp.
Sie verwenden Regex, um Teile von Zeichenketten zu suchen, zu validieren und zu extrahieren.
- Ein Wort, eine Ziffer oder ein Symbol finden
- E-Mail-Adressen und Telefonnummern validieren
- Teile aus unstrukturiertem Text extrahieren
pattern = /hello/
puts pattern.class
puts(pattern.match?('hello world'))Regex-Literale mit Schrägstrichen
Die häufigste Schreibweise für einen Regex in Ruby besteht aus zwei Schrägstrichen: /pattern/.
Dies wird als Regex-Literal bezeichnet. Alles zwischen den Schrägstrichen ist das Muster.
ruby = /ruby/
puts ruby.class
puts(ruby.match?('I love ruby'))
puts(ruby.match?('I love python'))Der =~-Übereinstimmungsoperator
Der Operator =~ prüft eine Zeichenkette gegen einen Regex. Er gibt den Index des ersten Treffers zurück oder nil, wenn kein Treffer vorhanden ist.
puts('hello world' =~ /world/)
puts(('hello world' =~ /xyz/).inspect)match? für eine boolesche Antwort
Wenn Sie nur eine Ja-Nein-Antwort benötigen, verwenden Sie match?. Die Methode gibt true oder false zurück und ist schneller, da sie kein MatchData-Objekt erstellt.
puts(/\d/.match?('abc123'))
puts(/\d/.match?('abcdef'))Zeichenklassen
Eine Zeichenklasse in eckigen Klammern findet genau ein Zeichen aus einer Menge.
[abc]findet a, b oder c[a-z]findet jeden Kleinbuchstaben[0-9]findet jede Ziffer
puts(/[aeiou]/.match?('sky'))
puts(/[aeiou]/.match?('tree'))
puts(/[0-9]/.match?('room 7'))Kurzschreibweisen für Zeichenklassen
Ruby stellt Kurzschreibweisen für häufig verwendete Zeichenklassen bereit:
\dsteht für eine Ziffer,\Dfür ein Nicht-Ziffernzeichen\wsteht für ein Wortzeichen (Buchstaben, Ziffern und Unterstrich)\ssteht für Leerraum,\Sfür Nicht-Leerraum
puts(/\d\d/.match?('age 42'))
puts(/\w+/.match?('hello_99'))
puts(/\s/.match?('no_space'))Der Punkt und Quantifizierer
Der Punkt . findet jedes einzelne Zeichen (außer einem Zeilenumbruch). Quantifizierer steuern die Wiederholung:
*null oder mehr+mindestens einmal?null- oder einmal{2,4}zwischen 2- und 4-mal
puts(/ab+c/.match?('abbbc'))
puts(/colou?r/.match?('color'))
puts(/\d{3}/.match?('id 451'))Alternativen mit dem Pipe-Zeichen
Das Pipe-Zeichen | bedeutet ODER. Das Muster cat|dog findet eines der beiden Wörter.
Verwenden Sie Klammern, um eine Alternative innerhalb eines größeren Musters zu gruppieren.
pet = /cat|dog/
puts(pet.match?('I have a dog'))
puts(pet.match?('I have a fish'))
puts(/^(yes|no)$/.match?('yes'))Flag für Groß-/Kleinschreibungsunabhängigkeit
Fügen Sie nach dem abschließenden Schrägstrich das Flag i hinzu, damit die Suche unabhängig von der Groß-/Kleinschreibung erfolgt.
Weitere nützliche Flags sind m (der Punkt findet auch Zeilenumbrüche) und x (erweitert, ignoriert Leerraum).
puts(/ruby/i.match?('I love RUBY'))
puts(/ruby/.match?('I love RUBY'))Regex aus Zeichenketten erstellen
Sie können mit Regexp.new zur Laufzeit einen Regex erstellen. Verwenden Sie Regexp.escape, um Benutzereingaben sicher einzubinden, die Sonderzeichen enthalten können.
word = 'price'
pattern = Regexp.new(word)
puts(pattern.match?('the price is high'))
puts(Regexp.escape('a.b*c'))Vorschau auf Anker
Anker finden Positionen, keine Zeichen:
^Anfang einer Zeile$Ende einer Zeile\AAnfang der Zeichenkette\zEnde der Zeichenkette
Sie werden diese später ausführlich behandeln.
puts(/^Hello/.match?('Hello there'))
puts(/world$/.match?('hello world'))Kurzer Test
Was gibt der Operator =~ zurück, wenn ein Regex in einer Zeichenkette einen Treffer findet?
Zusammenfassung: Regex-Literale
Sie haben die Grundlagen von Ruby-Regex kennengelernt:
- Regex-Literale werden zwischen
/slashes/geschrieben =~gibt einen Index zurück,match?gibt true/false zurück- Zeichenklassen
[ ]und Kurzschreibweisen\d \w \s - Quantifizierer
* + ? {n,m}und Alternativen| - Das Flag
imacht die Suche unabhängig von der Groß-/Kleinschreibung
Als Nächstes erfassen Sie die gefundenen Teile.
puts(/\w+@\w+\.\w+/i.match?('USER@Mail.com'))Häufig gestellte Fragen
Ist die Lektion „Regex-Literale“ kostenlos?
Ja — der vollständige Text von „Regex-Literale“ ist hier im Web kostenlos zu lesen. Um sie interaktiv zu üben (integrierter Code-Editor und 24/7 KI-Tutor) und den Rest des Ruby Academy-Kurses freizuschalten, upgrade auf CoddyKit PRO. Der Ruby Academy-Kurs umfasst insgesamt 4 Lektionen.
Was lerne ich in „Regex-Literale“?
Grundlagen von Patterns Du übst Ruby Academy mit praktischem Code, den du direkt im Browser ausführst, und ein 24/7 KI-Tutor beantwortet deine Fragen während du die Lektion bearbeitest.
Brauche ich Erfahrung, um Ruby Academy zu starten?
Keine Vorkenntnisse erforderlich. Ruby Academy auf CoddyKit ist für Anfänger bis fortgeschrittene Lernende strukturiert, sodass du hier starten oder von Anfang an beginnen und in deinem eigenen Tempo voranschreiten kannst. Dies ist Lektion 1 von 4.
Wie lange dauert die Lektion „Regex-Literale“?
Die meisten CoddyKit-Lektionen dauern etwa 5–10 Minuten. Jede ist kompakt und interaktiv, sodass du stetig Fortschritte machst und genau dort weitermachst, wo du aufgehört hast – im Web und in der App.
Kann ich in dieser Ruby Academy-Lektion Code schreiben und ausführen?
Ja. Jede Ruby Academy-Lektion enthält einen integrierten Code-Editor, sodass du echten Code direkt in deinem Browser schreibst und ausführst und sofort KI-Feedback erhältst — ohne lokale Einrichtung erforderlich.