R Unterfunktion: alles nach der zweiten Zahl ziehen

Jeffy

Ich versuche herauszufinden, wie man mit der Unterfunktion in R alles nach der zweiten Zahl zieht. Ich verstehe die Grundlagen mit dem faulen und gierigen Matching, aber wie gehe ich einen Schritt weiter und ziehe alles nach der zweiten Zahl?

str <- 'john02imga-04'

#faul: zieht alles nach der ersten Zahl

sub(".*?[0-9]", "", str)

#ausgabe: "2imga-04

#gierig: zieht alles nach der letzten Zahl

sub(".*[0-9]", "", str)

#Ausgang: ""

#gewünschte Ausgabe: "imga-04"

Der vierte Vogel

Sie können eine Capture-Gruppe für den zweiten Teil verwenden und diese im Ersatz verwenden

^\D+\d+(\D+\d+)
  • ^ Anfang der Zeichenfolge
  • \D+\d+ Übereinstimmung mit 1+ Nicht-Ziffern, dann 1+ Ziffern
  • (\D+\d+)Capture - Gruppe 1 , entsprechen 1+ nicht Ziffern und entsprechen 1+ Ziffern

Regex-Demo | R-Demo

str <- 'john02imga-04'
sub("^\\D+\\d+(\\D+\\d+)", "\\1", str)

Ausgabe

[1] "imga-04"

Wenn Sie alle nach der zweiten Zahl entfernen möchten:

^\D+\d+(\D+\d+).*

Regex-Demo


Als Alternative, um eine Übereinstimmung nur mit perl=TPCRE zu erhalten und \Kden Match-Puffer zu löschen:

str <- 'john02imga-04'
regmatches(str, regexpr("^\\D+\\d+\\K\\D+\\d+", str, perl = T))

Ausgabe

[1] "imga-04"

Sehen Sie sich eine R-Demo an

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

T SQL alles nach der zweiten Zeichenfolge

links alles vor der zweiten Zahl in einer Zeichenfolge entfernen

Wie man alles nach der zweiten Zeile mit AWK umkehrt

R - Entfernen Sie alles nach dem zweiten Leerzeichen in einer Datenrahmenspalte

Speichern Sie alles nach dem zweiten `/`

Löschen Sie alles nach dem zweiten Komma aus der Zeichenfolge

Wie man eine Zahl "rundet", indem man Nullen nach der zweiten Ziffer in Javascript setzt

R - Entfernen Sie alles nach dem Komma aus der Spalte

Sollte ich free () in der Unterfunktion nach malloc () verwenden?

versuchen, alles nach dem "zweiten" Punkt zu entfernen

So löschen Sie alles nach dem zweiten Schrägstrich

Löschen Sie alles, was nach dem zweiten numerischen Unterordner kommt

VBA-Formel, die alles nach dem zweiten Leerzeichen entfernt

Regex, um alles nach dem zweiten Unterstrich abzugleichen

R gsub alles nach leer

PHP-Array extrahieren oder ziehen Sie alles aus der API JSON für die HTML-Ausgabe

Ordnen von Daten in R nach der Summe einer faktorassoziierten Zahl

R: Filtern nach der ersten Ziffer einer ganzen Zahl

Entfernen Sie alles nach einer 10-stelligen Zahl regex

Entfernen Sie alles nach einer Zahl in einer Zeichenfolge

Benutzerformular innerhalb der Unterfunktion

t sql alles rechts von der ersten Zahl in der Zeichenfolge

Swift Combine Rückgabeergebnis der ersten Zukunft nach Auswertung der zweiten

Nach dem Login ziehen Sie Daten für die jeweiligen Benutzer aus der Datenbank

Python3: Finde die Zahl, die nach 10 den größten Rest hat, geteilt durch 10 (einige Fehler in der while-Schleife der zweiten Antwort)

Alles nach dem Backslash in Basis R entfernen?

Python - Filterliste nach Teilzeichenfolge der zweiten Liste

Ruhezustand der zweiten Ebene, deaktiviert nach Eigenschaft

Winkel, der alles nach '=' in der Abfragezeichenfolge von der URL entfernt

TOP Liste

heißlabel

Archiv