Text in Klammern in R extrahieren

user2817329

Zwei verwandte Fragen. Ich habe Vektoren von Textdaten wie

"a(b)jk(p)"  "ipq"  "e(ijkl)"

und möchten es einfach in einen Vektor trennen, der den Text AUSSERHALB der Klammern enthält:

"ajk"  "ipq"  "e"

und einen Vektor, der den Text IN den Klammern enthält:

"bp"   ""  "ijkl"

Gibt es eine einfache Möglichkeit, dies zu tun? Eine zusätzliche Schwierigkeit besteht darin, dass diese ziemlich groß werden können und eine große (unbegrenzte) Anzahl von Klammern haben. Daher kann ich nicht einfach Text "vor / nach" in Klammern abrufen und benötige eine intelligentere Lösung.

Avinash Raj

Text außerhalb der Klammer

> x <- c("a(b)jk(p)"  ,"ipq" , "e(ijkl)")
> gsub("\\([^()]*\\)", "", x)
[1] "ajk" "ipq" "e"  

Text in Klammern

> x <- c("a(b)jk(p)"  ,"ipq" , "e(ijkl)")
> gsub("(?<=\\()[^()]*(?=\\))(*SKIP)(*F)|.", "", x, perl=T)
[1] "bp"   ""     "ijkl"

Das (?<=\\()[^()]*(?=\\))stimmt mit allen Zeichen überein, die in den Klammern vorhanden sind, und im Folgenden (*SKIP)(*F)schlägt die Übereinstimmung fehl. Jetzt wird versucht, das Muster auszuführen, das unmittelbar nach dem |Symbol für die verbleibende Zeichenfolge war. Der Punkt .entspricht also allen Zeichen, die noch nicht übersprungen wurden. Wenn Sie alle übereinstimmenden Zeichen durch eine leere Zeichenfolge ersetzen, wird nur der Text in den Schlägern angezeigt.

> gsub("\\(([^()]*)\\)|.", "\\1", x, perl=T)
[1] "bp"   ""     "ijkl"

Diese Regex würde alle Zeichen erfassen, die in den Klammern vorhanden sind, und mit allen anderen Zeichen übereinstimmen. |.oder ein Teil hilft dabei, alle verbleibenden Charaktere außer den erfassten zu finden. Wenn Sie also alle Zeichen durch die Zeichen im Gruppenindex 1 ersetzen, erhalten Sie die gewünschte Ausgabe.

Dieser Artikel stammt aus dem Internet. Bitte geben Sie beim Nachdruck die Quelle an.

Bei Verstößen wenden Sie sich bitte [email protected] Löschen.

bearbeiten am
0

Lass mich ein paar Worte sagen

0Kommentare
LoginNach der Teilnahme an der Überprüfung

Verwandte Artikel

Muster zum Extrahieren von Text zwischen Klammern

Regulärer Ausdruck zum Extrahieren von Text in eckigen Klammern

Extrahieren von Text zwischen Klammern mit Regex

So extrahieren Sie Text in eckigen Klammern in TSQL

Extrahieren Sie Zeichenfolgen in runden Klammern mit Regex in R.

Extrahieren Sie das Auftreten von Text in Klammern aus einer Textdatei Python

Extrahieren Sie Text aus den innersten verschachtelten Klammern der Zeichenfolge

Extrahieren Sie mit R ein bestimmtes Zeichen zwischen geschweiften Klammern

Entfernen Sie jeglichen Text in eckigen Klammern in r

Extrahieren Sie Schlüssel-Wert-Paare aus Text in Klammern (Protokolldateien).

Extrahieren von Text in Klammern und Text außerhalb mit Regex

Was ist der Regex-Befehl zum Extrahieren von Werten in Klammern + statischem Text?

Zeichenfolge zwischen Klammern extrahieren

Wie können wir Zeichenfolgen aufteilen und den Text in runde Klammern extrahieren?

Regulärer Ausdruck zum Extrahieren von Text zwischen geschweiften Klammern

Regulärer Ausdruck, um bestimmten Text zwischen Klammern zu extrahieren

Extrahieren Sie Datenrahmenspaltentext in Klammern

Extrahieren von Text zwischen Klammern in Spalten im Datenrahmen in neue Spalten in Datenrahmen

Text zwischen Klammern in der Zeichenspalte extrahieren (neue Spalte erstellen) des R-Datenrahmens

Extrahieren Sie Text nur aus den ersten eckigen Klammern

Extrahieren Sie Text zwischen Klammern und erstellen Sie Zeilen für jedes Textstück

Excel-Formel zum Extrahieren von Text mit mehreren geschlossenen Klammern am Ende der Zeichenfolge

Extrahieren Sie den Text zwischen allen Klammern

Text aus speziellem Link zwischen Klammern extrahieren

Extrahieren und Verbinden von Text in verschachtelten Klammern

Regex zum Extrahieren von Text zwischen Klammern

R-Befehl zum Extrahieren von Text zwischen zwei Zeichenfolgen mit geschweiften Klammern

Text aus Klammern in Excel extrahieren

Extrahieren von Werten in Klammern in R

TOP Liste

heißlabel

Archiv