2014-02-05 3 views
6

У меня есть следующие строки, хранящиеся в объекте sentence:Удалить URL из строк

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 для удаления URL-адресов, начиная с 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

Я пытаюсь очистить URLs так, если строка содержит http Я хочу, чтобы удалить URL. Я нашел некоторые решения, но они не помогают мне.

+1

Добавить пространство для вашей замены группы: («HTTP *», «», предложение) 'GSUB '. – Justin

+0

@ Justin отличный ответ Я пробовал 'gsub ('http. * \\ s', '', предложение)', но он не работает. Возможно, вы могли бы добавить свои ответы в качестве ответа. –

+0

Мне кажется странным, что '\\ s' не будет работать там, где это делается. – jbaums

ответ

8

Добавить пространство для вашей замены группы:

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

Или с помощью \\s, которое регулярное выражение для пространства:

gsub('http.*\\s*', '', sentence) 

В соответствии с замечанием, .* будет соответствовать ничего и регулярные выражения являются жадными. Вместо этого мы должны соответствовать одному или более символу любое число раз, а затем ноль или более пробелов:

gsub('http\\S+\\s*', '', sentence) 
+2

Обратите внимание, что '. *' Также будет соответствовать пробелу ... если вы имеете в виду, что у вас есть нулевые или более небелые пробелы, за которыми следуют символы пробела нулевого или режима, вам действительно нужно используйте: 'gsub ('http \\ S * \\ s *', '', предложение)' – jbaums

+0

Пробовал это: предложение [1] "traderclubtirol: RT AnniDayTrades: сестра статей \" $ AAPL Танцы в сжигающей комнате \ "Январь 2013 http://t.co/tkuCRfLy \" $ AAPL vs $ AAPL \ "Август 2011 http://t.co/863HkVjn" > предложение = gsub ('http. * \\ s *', ' », предложение) > предложение [1] "traderclubtirol: RT AnniDayTrades: сестра статьи \" $ AAPL Танцы в горящем номере \ "января 2013" > > но он удаляет все после первого URL – Aniks

+0

@Justin: вы можете пойти на один шаг f далее и сопоставлять URL-адреса в конце строки с помощью 'gsub ('http \\ S + \\ s * | http \\ S + $', '', предложение)' – jbaums

Смежные вопросы