テキストから Web サイトを削除する関数を作成しようとしています。私は持っている:
removeWebsites<- function(text){
text = gsub("(http://|https://|www.)[[:alnum:]~!#$%&+-=?,:/;._]*",'',text)
return(text)
}
これは問題の大規模なセットを処理しますが、一般的なものではありません。つまり、次のような形式です。xyz.com
.com
正規表現の範囲を制限するため、上記の正規表現の最後に追加したくありません。ただし、次のような正規表現をさらに書いてみました。
gsub("[[:alnum:]~!#$%&+-=?,:/;._]*.com",'',testset[10])
これは機能しましたが、フォームの電子メール ID も変更されabc@xyz.com
ましたabc@
。私はこれをしたくないので、私はそれを変更しました
gsub("*((^@)[[:alnum:]~!#$%&+-=?,:/;._]*).com",'\\1',testset[10])
これにより、電子メールIDはそのままになりましたが、フォームのWebサイトの認識が停止しましたxyz.com
ここで説明されている形式の何らかのセットの違いが必要であることは理解していますが、それを実装できませんでした (主に完全に理解できなかったため)。問題を解決する方法について何か考えはありますか?
編集:否定先読みを試しました:
gsub("[[:alnum:]~!#$%&+-=?,:/;._](?!@)[^(?!.*@)]*.com",'',testset[10])
「無効な正規表現」エラーが発生しました。修正の少しの助けがこれを機能させるかもしれないと信じています...