我想找出字符串中字符的位置。
说:string = "the2quickbrownfoxeswere2tired"
我希望函数返回4
和24
-- 2
s在string
中的字符位置。
发布于 2013-10-07 07:16:50
这里有另一个简单的替代方案。
> which(strsplit(string, "")[[1]]=="2")
[1] 4 24
发布于 2015-09-27 11:32:39
使用unlist可以使输出仅为4和24:
unlist(gregexpr(pattern ='2',"the2quickbrownfoxeswere2tired"))
[1] 4 24
发布于 2015-10-08 10:35:59
查找str1中第n次出现str2的位置(与Oracle SQL INSTR的参数顺序相同),如果未找到,则返回0
instr <- function(str1,str2,startpos=1,n=1){
aa=unlist(strsplit(substring(str1,startpos),str2))
if(length(aa) < n+1 ) return(0);
return(sum(nchar(aa[1:n])) + startpos+(n-1)*nchar(str2) )
}
instr('xxabcdefabdddfabx','ab')
[1] 3
instr('xxabcdefabdddfabx','ab',1,3)
[1] 15
instr('xxabcdefabdddfabx','xx',2,1)
[1] 0
https://stackoverflow.com/questions/14249562
复制相似问题