Wie Verwenden von regulären Ausdrücken in R

R unterstützt das Konzept der regulären Ausdrücke, die Sie nach Mustern innerhalb Text suchen können. Sie können nie von regulären Ausdrücken gehört haben, aber Sie sind wahrscheinlich mit dem breiten Konzept. Wenn Sie jemals verwendet ein * oder ein ? jeden Buchstaben in einem Wort, um anzuzeigen, dann haben Sie eine Form der Wildcard-Suche verwendet. Reguläre Ausdrücke unterstützen die Idee von Wildcards und vieles mehr.

Reguläre Ausdrücke erlauben drei Möglichkeiten, ein Suchmuster allgemeiner als eine einzelne, fest Ausdruck:

  • Alternativen: Sie können durch die für Instanzen eines Musters oder einer anderen, angezeigt zu suchen | Symbol. Beispielsweise Strand | Buche Begegnungen sowohl Strand und Buche.

    Auf Englisch und amerikanisches Englisch Tastaturen können Sie in der Regel das finden | auf der gleichen Tonart wie Backslash ().

  • Gruppierung: Sie Gruppenmuster zusammen mit Klammern (). Zum Beispiel schreiben Sie (a | e) ch zu finden beide Strand und Buche.

  • Quantifizierer: Sie legen fest, ob ein Element in dem Muster wiederholt werden muss oder nicht, durch das Hinzufügen * (Tritt auf Null oder mehrmals) oder + (Tritt ein oder mehrmals). Beispielsweise zu finden entweder bach oder Buche (Null oder mehr von ein und e aber nicht beides), die Sie verwenden b (e * | a *) ch.

Versuchen Sie, die folgenden Beispiele. Zunächst eine neue Variable mit fünf Worten zu erstellen:

> rwords lt; - c ( "bach", "zurück", "Buche", "Strand", "schwarz")

Finden Sie entweder Strand oder Buche mit alternativen Matching:

> Grep ( "Strand | Buche", rwords) [1] 3 4

Dies bedeutet, dass die Zeichenkette in Elemente 3 und 4 gefunden rwords. Um die tatsächlichen Elemente zu extrahieren, können Sie subsetting mit eckigen Klammern verwenden:

> Rwords [grep ( "Strand | Buche", rwords)] [1] "Buche" "Strand"

Verwenden Sie nun die Gruppierung der Regel die gleichen Worte zu extrahieren:

> Rwords [grep ( "(a | e) ch", rwords)] [1] "Buche" "Strand"

Schließlich verwenden die quantifier Modifikation zu extrahieren bach und Buche aber nicht Strand:

rwords [grep ( "b (e * | a *) ch", rwords)] [1] "bach" "Buche"

Für weitere Hilfe bei der R finden über Reguläre Ausdrücke, Blick auf die Hilfeseite ?regexp. Einige andere große Ressourcen für mehr über reguläre Ausdrücke lernen sind Wikipedia und, wo Sie ein Quick-Start-Guide und Tutorials.

Menü