0 Daumen
663 Aufrufe

Frage:

Wie kann man die Klammern mit Hilfe von regulären Ausdrücken entfernen, sodass man am Schluss einen regulären Ausdruck hat, bei dem nur die Namen stehen. Wir arbeiten mit der Programmiersprache R.


Beispiel:

Code:

c("Daniel Ada (Student FM) (Student FM)",
"Roger Federer (Studentin FM) (Student FM)",
"Alina Roma (Student FM) FM2020 (Student FM)"
) %>%
  str_replace("\\(\\)", "")

Ich möchte am Schluss die Namen haben ohne diese () und den beliebigen Ausdrücken in diesen Klammern. Wie kann man eine verallgemeinerte Codezeile dazu machen?

Avatar von

1 Antwort

0 Daumen
 
Beste Antwort

Das lässt sich mit der Funktion str_replace_all, mit dem Pattern "\\s*\\([^\\)]+\\)" realisieren.

Code:

library(stringr)

studenten <- c("Daniel Ada (Student FM) (Student FM)",
"Roger Federer (Studentin FM) (Student FM)",
"Alina Roma (Student FM) FM2020 (Student FM)"
)

str_replace_all(studenten, "\\s*\\([^\\)]+\\)", "")

Ergebnis:
[1] "Daniel Ada"        "Roger Federer"    "Alina Roma FM2020"
Avatar von

Vielen Dank dafür!

Könntest du mir eventuell noch erklären, wie das genau funktioniert?


\\s Das steht für die Leerzeichen.


Das * steht für die voranstehenden Symbole also das was danach kommt oder?

\\( das zeigt den Anfang der Klammer.

[^\\)] Das verstehe ich nicht ganz.


+\\) Das zeigt alles was dann noch am Ende der Klammer marktiert ist oder?

Kein Problem :)

\\s richtig.

\\( richtig.

*\\([^\\)] gehört zusammen das *, besagt das auch nichts in der Klammer stehen darf. Man hätte theoretisch auch +\\([^\\) verwenden können, + besagt das min. 1 Zeichen zutreffen muss.

[^\\)] alles außer die letzte Klammer, also der Inhalt der Klammer.

+\\) die letzte Klammer.

Ein anderes Problem?

Stell deine Frage

Willkommen bei der Stacklounge! Stell deine Frage einfach und kostenlos

x
Made by a lovely community