我有以下字符串,存储在对象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"
我正在尝试使用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
,我想删除网址。我找到了一些解决方案,但他们没有帮助我。
答案 0 :(得分:9)
为替换组添加空格:
gsub('http.* *', '', sentence)
或者使用\\s
作为空格的正则表达式:
gsub('http.*\\s*', '', sentence)
根据评论,.*
将匹配任何内容,正则表达式是贪婪的。相反,我们应该多次匹配一个或多个非空格字符,后跟零个或多个空格:
gsub('http\\S+\\s*', '', sentence)