R语言 返回某个字符串在某个字符串中第一次出现的位置(类似php的strpos和js的indexOf)

puyuetian 乐天 关注 九级站长 创始人
发表于其他技术文章版块
今天帮女票写R语言作业,需要用到类似php的strpos函数的函数,但R语言里似乎没有(反正我没百度出来),无奈自己写了一个,在这里记录以备后用:

#indexOf(str,str2),str是被搜索的字符串,str2是搜索的字符串,返回搜索的字符串在被搜索的字符串中第一次出现的位置,找不到返回0
indexOf = function(str,str2){
  cd=nchar(str);
  cd2=nchar(str2);
  if(cd==0||cd2==0){
    return(0);
  }
  for(i in 1:cd){
    t=substr(str,i,i);
    for(j in 1:cd2){
      if(t==substr(str2,j,j)&&j==1){
        if(cd2==1){
          return(i);
        }else{
          c=TRUE;
          for(k in 1:(cd2-1)){
            if(substr(str,i+k,i+k)!=substr(str2,j+k,j+k)){
              c=FALSE;
              break;
            }
          }
          if(c==TRUE){
            return(i);
          }
        }
      }else{
        break;
      }
    }
  }
  return(0);
}

用法举例(找到返回起始位置,从1开始,找不到返回0):

a="hadsky.com轻论坛";
b=indexOf(a,"m轻");
print(b);
#将输出10
b=indexOf(a,"你奶奶的");
print(b);
#将输出0

陕西,西安

评论列表 评论
你奶奶的
共0条回复,点击查看回复
h153669225 'ゞ 猴塞给! 二级站长 普通 6#
秀恩爱,XXX
共0条回复,点击查看回复
黑衣人 简单就是美 八级站长 VIP 5#
有啥用 看不懂

上海,上海

共0条回复,点击查看回复
wolfman 爱域菌 七级站长 VIP 4#
emotionemotionemotion
共0条回复,点击查看回复
cc1988 cc1988 三级站长 普通 3#
666666666666666
共0条回复,点击查看回复
扶摇可接 扶摇可接 五级站长 普通 2#
66666

宁夏,银川

共0条回复,点击查看回复
发布评论

评论: R语言 返回某个字符串在某个字符串中第一次出现的位置(类似php的strpos和js的indexOf)

已有0次打赏
(1) 分享
分享

请保存二维码或复制链接进行分享

取消