2015-11-15 6 views
-1

У меня есть строковый URL-адрес, содержащий адрес ссылки. Я хочу проверить, не является ли это www. Если это так, замените его на www-ссылку без импорта внешних пакетов.Как добавить строку внутри другой в определенной позиции

из

[1] "http://yyyyy.com/xxxx" 

в

[1] "http://www.yyyyy.com/xxxx" 
+0

Что вы пытаетесь до сих пор? – hagello

+0

Возможно, вы захотите прочитать [Как задать хороший вопрос] (http://stackoverflow.com/help/how-to-ask), что увеличивает вероятность получения полезного ответа _drastically_. Вы можете найти превосходный эссе [ESR] (https://en.m.wikipedia.org/wiki/Eric_S._Raymond) [Как задавать вопросы Smart Way] (http://catb.org/~esr/ faqs/smart-questions.html). –

ответ

1
s<-c("http://yyyyy.com/xxxx", "http://www.aaaaaa.com/xxxx") 
gsub('(?<=:)(//)(?!www)','\\1www.',s,perl=T) 
[1] "http://www.yyyyy.com/xxxx" "http://www.aaaaaa.com/xxxx" 
0

Как об этом?

s<-"http://yyyyy.com/xxxx" 
s<-ifelse(grepl("www",s),s,gsub("http://","http://www.",s)) 
s 

grepl("www",s) проверяет, является ли "WWW" является частью с.
если true, то ничего не делать. Если false, используйте gsub("http://","http://www.",s), чтобы заменить «http: //» на «http://www». в s.

+1

Или просто 'sub (" http: // (www \\. |) "," Http: // www. ", X)' - или 'find 'http: // www.' или' http: // [ничего] 'и заменить либо' http: // www.' – thelatemail

0

Вы также можете рассмотреть возможность использования gsubfn:

my_urls <- c("http://yyyyy.com/xxxx", "http://www.aaaaaa.com/xxxx") 
require(gsubfn) 
gsubfn(pattern = "http://[^www]", x = my_urls, 
     replacement = function(x) gsub("http://","http://www.",x)) 

[^www] будет соответствовать всем http:// префиксы, которые не имеют www и передавать результаты в gsubfn, который будет изменять полученную строку. Что даст вам:

[1] "http://www.yyyyy.com/xxxx" "http://www.aaaaaa.com/xxxx" 
Смежные вопросы