0

以下を含むテキスト文書があります。

  • さまざまな種類のメール アドレス: gmail、yahooなどのパブリック ドメインと、 abc@mycompany.orgなどのプライベート メールを意味します ...
  • abc.com、http: //abc.com、www.abc.orgなどのさまざまなハイパーリンク...

したがって、単一の正規表現コマンドを記述して、ドキュメントからそのようなエントリをすべて削除してさらに処理できるかどうかを知りたいです。そうであれば、リンク、ドキュメント、または有用なものを共有してください。正規表現関数を使用して、ドキュメントからあらゆる種類の電子メール ID またはハイパーリンクを削除したいと考えています。Rで正規表現コードを実装します。私はこの分野の初心者なので、詳細な説明をいただければ幸いです。

したがって、次のように入力すると:

「abc@mycompany.org aasd234bc.com を保持するhttp://abc.com www.abc.org org com .com comm in sahgo234@flkja23.in」

次に、次のように出力する必要があります。

「保持する org com comm in」

4

2 に答える 2

2

あなたはそのようなことを試すことができます:

x <- c("abc@mycompany.org", "abc.com", "http://abc.com", "www.abc.org")
gsub("(@.+$|\\..{1,3}$|(^http://)?(w{3}\\.)?)", "", x, perl=T)

私があなたの質問をよりよく理解し、それがあなたが削除する必要がある最初の電子メール アドレスである場合:

 gsub("(^\\b\\S+\\@\\S+\\..{1,3}(\\s)?\\b)", "", x, perl=T)

それ以外は:

gsub("(\\b\\S+\\@\\S+\\..{1,3}(\\s)?\\b)", "", x, perl=T)

HTH

于 2013-04-10T12:19:45.637 に答える
1

私はこれを真の正規表現とは呼ばず、遅くなる可能性がありますが...

x <- c("abc@mycompany.org aasd234bc.com to be retained abc.com www.abc.org org com .com comm in sahgo234@flkja23.in")

y <- unlist(strsplit(x, "\\s+"))
paste(y[!grepl("@|\\.com|\\.org|www\\.|\\.org|\\.in", y)], collapse=" ")

## [1] "to be retained org com comm in"

編集:複数行のベクトルの場合、関数としてラップするlapplyと...

x <- c("abc@mycompany.org aasd234bc.com to be retained abc.com www.abc.org org com .com comm in sahgo234@flkja23.in", 
    "abc@mycompany.org aasd234bc.com to be retained abc.com www.abc.org org com .com comm in sahgo234@flkja23.in")

FUN <- function(x) {
    y <- unlist(strsplit(x, "\\s+"))
    paste(y[!grepl("@|\\.com|\\.org|www\\.|\\.org|\\.in", y)], collapse=" ")
}
unlist(lapply(x, FUN))

## > unlist(lapply(x, FUN))
## [1] "to be retained org com comm in" "to be retained org com comm in"
于 2013-04-10T12:52:49.617 に答える