2017-02-25 17 views
2

文字列から複数のWeb URLを削除したいと思います。文字列は、次のされている場合:Rの正規表現:文字列から複数のURLを削除する

gsub(" ?(f|ht)(tp)(s?)(://)(.*)[.|/](.*)", "", string)

しかし、それは私にこれを返します:

this is a URL http://test.com and another one http://test.com/hi and this one http://www.test.com/

それは私が次のコードを使用してみました

this is a URL and another one and this one

を返す必要があります

this is a URL

答えて

2

この1つはまた、代わりに(.*)の我々は(スペースが発見されるまで)URLの最後まで一致する[^\\.]*(ドメインのドットまで)と\\S*を使用することができ、動作します。

gsub("\\s?(f|ht)(tp)(s?)(://)([^\\.]*)[\\.|/](\\S*)", "", string) 
# [1] "this is a URL and another one and this one" 
1

.*ではなく.の(なしの空白にマッチ)あなたは\\Sを使用することができますので、最初のURLの後に、すべての部分が削除され、通常のURLは空白を含まない、制約なしに、文字列の最後まで一致しますこの問題を回避するために、(任意の文字に一致する):

gsub(" ?(f|ht)(tp)s?(://)(\\S*)[./](\\S*)", "", string) 
# [1] "this is a URL and another one and this one" 
1

あなたは、次の正規表現/コード使用して試すことができます:

gsub("https?:\\/\\/(.*?|\\/)(?=\\s|$)\\s?", "", string) 
# [1] "this is a URL and another one and this one" 

DEMO

関連する問題