Lässt sich auf einer exemple aussehen:Erste 2 Substrings/Gruppen vor und nach der letzten n-ten "_"
abc_def_ghi_jkl
Wenn ich n = 1
wählen, möchte ich die Ausgabe sein:
group1 = abc_def_ghi
group2 = jkl
Wenn ich wählen n = 2
ich die Ausgabe sein wollen:
group1 = abc_def
group2 = ghi_jkl
Hinweis
Die_
, die die zwei Gruppen getrennt hat, wird entfernt.
Vorerst Ich dachte nur, wie die letzte Gruppe zu wählen, sondern auch wählt die _
:
(?:.(?!(?=\_)))+$
Note2 ich zur Zeit auf dem regex Teil bin konzentriert, aber es ist ein Code verwendet werden, in R wenn es hilft, zu einer Lösung zu kommen.
Gibt es einen bestimmten Grund regex zu benutzen? Für mich ist die Verwendung von 'strsplit' auf' _ _ 'gefolgt von' paste (..., collapse = '_') 'eine einfachere Lösung, um dieses spezielle Beispiel zu lösen. – Vandenman
So einfach ... 3 Stunden, dass ich das Problem falsch anschaue. Vielen Dank ! Ich bin immer noch neugierig, aber lernen Sie mehr über Regex, wenn jemand die Antwort hat :) –
Nun, es kann eine Regex-basierte Antwort mit dem Abgleich der Gruppen, wie ['^ (. *?) _ ((?: _) ? [^ _] +) {3}) $ '] (https://regex101.com/r/rW0sE8/1). Ersetzen Sie die Zahl in '{...}', um die benötigten Teile zu erhalten. Gerade wenn Sie eine Zahl außerhalb des Bereichs verwenden, kann das Verhalten merkwürdig werden. –