如何在另一个特定位置添加字符串

时间:2015-11-15 21:34:10

标签: regex r string

我有一个包含链接地址的字符串url。我想检查一下它是不是非www。如果是,则将其更改为www链接,而不导入外部包。

来自

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

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

3 个答案:

答案 0 :(得分: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"

答案 1 :(得分:0)

这个怎么样?

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

grepl("www",s)检查“www”是否是s的一部分 如果是真的,那么什么也不做。如果为false,请使用gsub("http://","http://www.",s)将“http://”替换为“http://www”。在s

答案 2 :(得分: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"