从字符串中删除网址

Ani*_*iks 7 url replace r gsub

我有以下字符串,存储在对象中sentence:

sentence <- "aazdlubtirol: RT @tradeDayTrades: sister articles \"$AAPL Dancing in a Burning Room\" January 2013  http://t.co/tkuCRfLy  \" $AAPL vs $AAPL \"  August 2011 http://t.co/863HkVjn"
Run Code Online (Sandbox Code Playgroud)

我正在尝试使用gsub删除以下开头的网址http:

sentence <- gsub('http.*','',sentence)

但是,它取代之后的所有内容http:

aazdlubtirol: RT @tradeDayTrades: sister articles \"$AAPL Dancing in a Burning Room\" January 2013

我想要的是:

aazdlubtirol: RT @tradeDayTrades: sister articles \"$AAPL Dancing in a Burning Room\" January 2013 \" $AAPL vs $AAPL \" August 2011

我正在尝试清理网址,所以如果字符串包含http我想要删除网址.我找到了一些解决方案,但他们没有帮助我.

Jus*_*tin 9

为替换组添加空格:

gsub('http.* *', '', sentence)
Run Code Online (Sandbox Code Playgroud)

或使用\\s哪个是正则表达式的空间:

gsub('http.*\\s*', '', sentence)
Run Code Online (Sandbox Code Playgroud)

根据评论,.*将匹配任何东西和正则表达式是贪婪的.相反,我们应该多次匹配一个或多个非空格字符,后跟零个或多个空格:

gsub('http\\S+\\s*', '', sentence)
Run Code Online (Sandbox Code Playgroud)

  • 我认为`gsub("(http [^]*)","",句子"`也有效. (4认同)
  • 请注意,`.*`也将匹配空格...如果你的意思是有零个或多个非空白字符后跟零或模式空白字符,你真的需要使用:`gsub('http \\ S*\\ s*','',句子)` (2认同)