regex03

regex
textmining
string
Published

November 8, 2023

Aufgabe

Gegeben sein ein String-Vektor, x. Dieser Vektor enthält Vornamen mehrerer Personen. Extrahieren Sie den ersten Vornamen jeder Person.

x <-
  c("Anna",
    "Berta Brigitte",
    "Carla-Klara",
    "Dana Dora Diana",
    "Emilia E",
    "F-Franziska",
    " Gabi",
    "Jana die Erste")

Hinweise:











Lösung

library(stringr)  # Teil von tidyvserse
library(purrr)

Liest man alle Zeichen vom Typ w aus, so sind Bindestriche nicht enthalten:

str_match(x, "\\w+")
     [,1]    
[1,] "Anna"  
[2,] "Berta" 
[3,] "Carla" 
[4,] "Dana"  
[5,] "Emilia"
[6,] "F"     
[7,] "Gabi"  
[8,] "Jana"  

Daher macht es vermutlich mehr Sinn, umgekehrt zu sagen, was man nicht will, nämlich Leerzeichen, also s:

str_match(x, "[^\\s]+")
     [,1]         
[1,] "Anna"       
[2,] "Berta"      
[3,] "Carla-Klara"
[4,] "Dana"       
[5,] "Emilia"     
[6,] "F-Franziska"
[7,] "Gabi"       
[8,] "Jana"       

Die Ausgabe kann man noch vereinfachen, in dem wir aus der resultieren Matrix (Tabelle) die ersten Spalte auswählen:

[1] "Anna"        "Berta"       "Carla-Klara" "Dana"        "Emilia"     
[6] "F-Franziska" "Gabi"        "Jana"       

Categories:

  • regex
  • textmining
  • string