我有一个简单的向量:
library(stringr)
a <- paste0("S", str_pad(1:360, 3, pad = "0"))
b <- sample(a, 180)
我想删除所有领先的&#34; S&#34;,&#34; S0&#34;,&#34; S00&#34;在b
。怎么做?
答案 0 :(得分:3)
我建议
sub("^S0*", "", b)
它将替换字符串开头的所有S和S后面的0+个零。它不会意外地删除字符串中间的S.
请注意,这也会在开头取代S000
。如果要在初始S之后将其限制为最多两个零,则可以使用
sub("^S0{0,2}", "", b)
答案 1 :(得分:1)
您可以使用这组正则表达式:
sub("^0","", sub("^0" , "", sub("^S", "", b)))
答案 2 :(得分:1)
在这种情况下,由于您要删除正则表达式S|S0+
容易描述的字符串,因此您可以使用sub
(来自基础R
)或者因为您正在使用{{1你可以使用stringr
:
str_replace
在这里会有很多正则表达式可以完成相同的工作,至少对于给出的例子而言。
最准确地描述OP一般想要的是str_replace(b, "S|S0+", "")
在另一个答案中给出的那个。