私は、このような一般的なタスクのための正規表現の定型化されたグループに取り組んでおり、最終的に CRAN に移動するgithub のパッケージ qdapRegex に投入しました。また、ピースを抽出するだけでなく、サブアウトすることもできます。パッケージをご覧になった方からのフィードバックをお待ちしております。
ここにあります:
library (devtools)
install_github("trinker/qdapRegex")
library(qdapRegex)
x <- c("download file from http://example.com",
"this is the link to my website http://example.com",
"go to http://example.com from more info.",
"Another url ftp://www.example.com",
"And https://www.example.net",
"twitter type: t.co/N1kq0F26tG",
"still another one https://t.co/N1kq0F26tG :-)")
rm_url(x, pattern=pastex("@rm_twitter_url", "@rm_url"))
## [1] "download file from" "this is the link to my website"
## [3] "go to from more info." "Another url"
## [5] "And" "twitter type:"
## [7] "still another one :-)"
rm_url(x, pattern=pastex("@rm_twitter_url", "@rm_url"), extract=TRUE)
## [[1]]
## [1] "http://example.com"
##
## [[2]]
## [1] "http://example.com"
##
## [[3]]
## [1] "http://example.com"
##
## [[4]]
## [1] "ftp://www.example.com"
##
## [[5]]
## [1] "https://www.example.net"
##
## [[6]]
## [1] "t.co/N1kq0F26tG"
##
## [[7]]
## [1] "https://t.co/N1kq0F26tG"
編集ツイッターのリンクが削除されていないことがわかりました。これを関数固有の正規表現に追加するつもりはありませんがrm_url
、 の辞書に追加しましたqdapRegex
。したがって、標準の URL と twitter の両方を削除する特定の関数はありませんが、pastex
(正規表現の貼り付け) を使用すると、辞書から正規表現を簡単に取得して、それらを一緒に貼り付けることができます (パイプ演算子 を使用|
)。すべてのrm_XXX
スタイル関数は本質的に同じように機能するため、pastex
出力をpattern
任意の関数の引数に渡すrm_XXX
か、以下に示すように独自の関数を作成できます。
rm_twitter_url <- rm_(pattern=pastex("@rm_twitter_url", "@rm_url"))
rm_twitter_url(x)
rm_twitter_url(x, extract=TRUE)