2017-02-10 8 views
0

大きな文字列があり、開始と終了の検索パターンでパターンを一致/抽出したい。これはどのようにしてRで行うことができますか?Rを使用して大きな文字列でパターン(開始点と終了点)を抽出するにはどうすればよいですか?

文字列の例:

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)"

そして、私はこのインスタンス内のURLの成分を抽出したいです。したがって、パターンはhttpで始まり、.csvまたは任意の拡張子(可能な場合)で終わります。

http://company.com/students.csv

http://company.com/students_grades.csv

私は、パターンを抽出するためにgregexprを使用して多くの試みとは運を持っていません。誰かがRでこれを行う方法を出すのを助けることができますか?

+1

あなたで終わります質問は明確ではない。それは常にURLを抽出するのだろうか?常に最初と最後のURL?常に引用符で囲みますか? – G5W

答えて

2

stringrパッケージは、このタイプのアプリケーションのために非常に適しています:

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")) 

検索パターンで始まる文字列である「のhttp:」少なくとも1つの文字でと「CSV」

+0

'http:。+?csv'はおそらくもっと良いでしょう。 – Kerwin

+0

' http:。+?csv'は動作しますが、 'http:。+ csv'は動作しません。 – brian

+0

こんにちはデイブ、ちょうどあなたのコードがサンプルで実際に動作します。ありがとう! 'big_string'のバージョンは、実際にはサンプルより少し複雑です。何らかの理由で' http:。+/csv'が動作し、もう一つは動作しません。 – brian

関連する問題