2017-02-10 2 views
0

Ich habe eine große Zeichenfolge und ich möchte ein Muster mit Start und Ende Suchmuster übereinstimmen/extrahieren. Wie kann das in R gemacht werden?Wie kann ich ein Muster (Anfang und Ende) in einer großen Zeichenfolge mit R extrahieren?

Ein Beispiel für die Zeichenfolge:

big_string <- "read.csv(\"http://company.com/students.csv\", header = TRUE)","solution":"# Preview students with str()\nstr(students)\n\n# Coerce Grades to character\nstudents$Grades <- read.csv(\"http://company.com/students_grades.csv\", header = TRUE)"

Und ich möchte die URL-Komponenten in diesem Fall extrahieren. Daher beginnt das Muster mit http und endet mit .csv oder einer beliebigen Erweiterung (wenn möglich).

http://company.com/students.csv

http://company.com/students_grades.csv

Ich habe kein Glück mit vielen Versuchen gregexpr mit dem Muster zu extrahieren. Kann jemand helfen, einen Weg zu finden, dies in R zu tun?

+1

Ihrem Frage ist nicht klar. Wird es immer eine URL zum Extrahieren sein? Immer die erste und letzte URL? Immer in Anführungszeichen? – G5W

Antwort

2

Das stringr Paket funktioniert sehr gut für diese Art der Anwendung:

library(stringr) 
big_string <- 'read.csv(\"http://company.com/students.csv\", header = TRUE)","solution":"# Preview students with str()\nstr(students)\n\n# Coerce Grades to character\nstudents$Grades <- read.csv(\"http://company.com/students_grades.csv\", header = TRUE)' 

results<-unlist(str_extract_all(big_string, "http:.+csv")) 

Das Suchmuster ist ein String beginnend mit „http:“ mit mindestens 1 Zeichen und endend mit „csv“

+0

'http:. +? Csv' vielleicht besser – Kerwin

+0

' http:. +? Csv' funktioniert, aber 'http:. + Csv' nicht. – brian

+0

Hallo Dave, gerade getestet dein Code funktioniert tatsächlich auf der Probe. Vielen Dank! Die Version des 'big_string' ist eigentlich etwas komplizierter als das Beispiel und aus irgendwelchen Gründen funktioniert 'http:. +/Csv' und das andere nicht. – brian

Verwandte Themen