substr函数用法详解

2023-10-30

substr(string, start<,length>):从string的start位置开始提取字符串 
length:要提取字符串的长度,若length为以下任意条件之一时,返回start位置到串尾的所有字符:
length不指定 
length为空 
length为负数
length大于start到串尾的长度

例如:
data test; 
str='chsh234960b3'; 
strl=subatr(str,5); 
str2=substr(str,5,'');
str3=aubstr(str,5,-3);
str4=aubstr(str,5, 30);
drop atr;
run;
proc print noobs; 
run;

注意两点:
substr中的start为负数时返回空值;
当length为负数时,默认从start位罝取所有字符。

subatr实现从右侧取数几种方法:从字符串chah234960b3右侧截取5个字符
的几种方法
1.substr(str,length(str)-n+1,n)
data _null_;
str='chah234960b3';
str1=substr(str,length(str)-5+1,5);
put str1=;
run;

2.使用reverse函数
data _null_;
str='chah234960b3';
str1=reverse(substr(reverse(str),1,5));
put str1=;
run;

substr除了有字段截取的功能外,还可以用来替换字段
'='在左边: 截取字段
data _null_;
x='123456';
str=substr(x,1,3);
put str=;
run;
在log中输出结果为: str=123;

'='在右边: 替换字段
data _null_;
x='123456';
substr(x,1,3)='789';
put x=;
run;
在log中输出结果为: str=789456;

通常情况下,substr往往结合find一起使用.
例1: 截取每行数据中的math和english
data test;                                                                                                                                     
input id :$3. exams & $30.;                                                                                                                    
math=substr(exams,find(exams,'math','i',1),4);                                                                                                 
english=substr(exams,find(exams,'english','i',1),7);                                                                                           
cards;                                                                                                                                         
001 math Chinese                                                                                                                               
002 english math chemistry                                                                                                                     
003 Chinese phisics                                                                                                                            
;                                                                                                                                              
run;                                                                                                                                                                                                                                                                                         
                                                                                                                                               
例2: 查找每位学生的数学和英语成功                                                                                                              
data test;                                                                                                                                     
input id $ exams & $30.;                                                                                                                       
math=substr(exams,find(exams,'math','i',1)+5,3);                                                                                               
english=substr(exams,find(exams,'english','i',1)+7,3);                                                                                         
cards;                                                                                                                                         
001 math 100 english 90                                                                                                                        
002 math 80 english 70                                                                                                                         
003 math 95 english 85                                                                                                                         
;                                                                                                                                              
run;                                                                                                                                           
                                                                                                                                               
data test;                                                                                                                                     
input id $ exams & $30.;                                                                                                                       
math=substr(exams,index(exams,'math')+5,3);                                                                                                    
english=substr(exams,index(exams,'english')+7,3);                                                                                              
cards;                                                                                                                                         
001 math 100 english 90                                                                                                                        
002 math 80 english 70                                                                                                                         
003 math 95 english 85                                                                                                                         
;                                                                                                                                              
run;                                                                                                                                           
          









本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

substr函数用法详解 的相关文章

  • c/c++编程学习:程序自删除

    程序自删除的方式有很多 不过最终的思想不过是关闭本身进程 开启新进程用于删除自身 下面这个方法是用windows自带命令行程序实现删除 命令行为 cmd exe c del filename 代码示例 C语言形式 include inclu
  • Numpy学习笔记——常用函数

    3 1 文件读写 3 2 动手实践 读写文件 savetxt 将数组保存到文件中 i2 np eye 2 print i2 np savetxt eye txt i2 3 3 CSV 文件 3 4 动手实践 读入CSV 文件 NumPy中的
  • 模拟实现strstr函数

    目录 strstr函数介绍 使用strstr 出现 未出现 我的strstr模拟实现 代码 代码逻辑 现在来讲一下比较迷惑的点 结语 strstr函数介绍 在C语言的库函数里面有一个函数叫做strstr 这个函数的作用是在一个字符串中判断是
  • 微信小程序在wxml中使用函数

    方法一 在wxml中直接添加模块 就可以在wxml中直接引用 举个例子
  • Caffe中 math_functions 分析

    本篇博客转载自 Caffe源码 一 math functions 分析 math function 定义了caffe 中用到的一些矩阵操作和数值计算的一些函数 这里以float类型为例做简单的分析 1 caffe cpu gemm temp
  • 微信小程序无法获取头像,昵称的解决办法 (原生)

    最新发布的微信小程序已经无法获取头像和昵称 那么如何解决这个问题呢 其实很简单 新用户注册后 提示跳转到新页面 要求修改昵称和头像即可
  • CSAPP第三版运行时打桩Segmentation fault

    CSAPP第三版7 13 3节提到了运行时打桩机制 它可以在运行时将程序中对共享库函数的调用进行截获 替换为执行自己的代码 这个机制基于动态链接器的LD PRELOAD环境变量 如果LD PRELOAD环境变量被设置为一个共享路径名的列表
  • python装饰器简介---这一篇也许就够了

    Python装饰器 decorator 是在程序开发中经常使用到的功能 合理使用装饰器 能让我们的程序如虎添翼 装饰器引入 初期及问题诞生 假如现在在一个公司 有A B C三个业务部门 还有S一个基础服务部门 目前呢 S部门提供了两个函数
  • matlab中Img(:,:,n)函数的说明

    Img n 中 n可以取1 2 3分别代表img图像的第1 2 3通道 即对应着R G B三种颜色 也就是说 Img 1 是红色分量图像 Img 2 是绿色分量图像 Img 3 是蓝色分量图像 具体也可通过如下一段函数定义可以看出 img
  • 小程序跳转带参数

    携带参数 pages reg reg wx navigateTo url pages promise promise name pages reg reg 接收参数 onLoad function arg console log sssss
  • 12-24小时制

    编写一个程序 要求用户输入24小时制的时间 然后显示12小时制的时间 输入格式 输入在一行中给出带有中间的 符号 半角的冒号 的24小时制的时间 如12 34表示12点34分 当小时或分钟数小于10时 均没有前导的零 如5 6表示5点零6分
  • 两个数值互换的几种方式

    一 建立临时变量 1 普通的方法 思路简介 建立一个临时变量 通过temp a a b b temp来实现交换 缺点 这只是一种假交换 由于这只是在函数内部临时变量间的交换 所以当函数退出 函数栈帧被释放 原本的值并没有交换 具体方法 in
  • Lua封装延时执行函数

    延时执行函数 function delayTimeGuideEvent target func times 延迟时间执行函数 local delaytime 1 if times then delaytime times end getRo
  • localStorage的过期时间设置的方法?——和派孔明

    我们都知道localStorage不主动删除 永远不会销毁 那么如何设置localStorage的过期时间呢 今天我们来一起尝试一下
  • C语言模拟实现atoi函数

    atoi函数 主要功能是将一个字符串转变为整数 例如将 12345 gt 12345 但在实现过程中 我们难免会因为考虑不够全面而漏掉比较重要的几点 今天就总结一下实现atoi函数需要注意的地方 1 指针为NULL 2 字符串为空字符串 3
  • unity中mathf.Lerp的运用

    在unity3d中经常用线性插值函数Lerp 来在两者之间插值 两者之间可以是两个材质之间 两个向量之间 两个浮点数之间 两个颜色之间 其函数原型如下 1 Material Lerp 插值 function Lerp start Mater
  • ORA-22835 缓冲区对于 CLOB 到 CHAR 转换或 BLOB 到 RAW 转换而言太小

    昨天遇到一个问题 ORA 22835 缓冲区对于 CLOB 到 CHAR 转换或 BLOB 到 RAW 转换而言太小 去找问题时候 发现是sql查询语句的to char方法将clob类型转换成varchar类型出了问题 oracle中var
  • Python常用函数笔记汇总1

    清理 重塑 转换 numpy where condition x y 1 这里x y是可选参数 condition是条件 这三个输入参数都是array like的形式 而且三者的维度相同 2 当conditon的某个位置的为true时 输出
  • 用实际例子理解回调函数(Calback)

    用实际例子理解回调函数 Calback 在我们编码的过程中 调用和回调几乎无处不在 但是我对回调函数到底是怎样一回事并没有一个真正透彻的理解 最近我查找学习了一些资料 学到了很多 我参考了一些知乎上的分享 很不错 https www zhi
  • 【高等数学基础知识篇】——函数,极限与连续

    本文仅用于个人学习记录 使用的教材为汤家凤老师的 高等数学辅导讲义 本文无任何盈利或者赚取个人声望的目的 如有侵权 请联系删除 文章目录 一 函数基础知识 1 1 基本初等函数和初等函数 1 2 函数的初等特性 1 3 特殊函数 二 函数题

随机推荐

  • 迁移wind to linux服务器EE网站--迁移说明步骤

    1 上传程序文件 htaccess上传 里面有特殊字符记得更改2 还原数据库从原数据库导出 SQL的命令mysqldump u用户名 p密码 default character set latin1 数据名 gt 数据名 sql3 修改配置
  • 用CSS画小猪佩奇,你就是下一个社会人!

    欢迎大家前往腾讯云 社区 获取更多腾讯海量技术实践干货哦 作者 江志耿 腾讯TEG网络工程师 我是佩奇 哼 这是我的弟弟乔治 呱呱 这是我的妈妈 嚯 这是我的爸爸 嚯 背景 小猪佩奇已经火了好一阵了 其实一开始我是不屑的 纵观小朋友的历届动
  • 网络安全-子域名收集

    本文为作者学习文章 按作者习惯写成 如有错误或需要追加内容请留言 不喜勿喷 本文为追加文章 后期慢慢追加 子域名 子域名指二级域名 二级域名是顶级域名 一级域名 的下一级比如mail heetian com和bbs heetian com是
  • Fusionstorage Cinder架构

    由于最近一个月加班开发一个云存储产品 fusionstorage cinder 之前也没有碰过云存储这方面的知识 于是花了很长一段时间去学习了解它的架构 首先我们要知道云存储是什么 云存储其实是在云计算概念上延伸出的一个新概念 通过集群应用
  • 创建线程四种方法详解;及说明ThreadPoolExecutor方式创建线程池

    一 继承Thread类的方式 创建一个线程 class MyThred extends Thread public MyThred String name super name Override public void run 线程内的操作
  • Files under the build folder are generated and should not be edited

    在类库里面写的 按ctrl z返回之前写的代码 然后rebuild project的时候就不行了 报资源文件错误 各种clean也不起作用 报的错误都是build文件下的错误 应该是没更新过来 然后我就 1 show history返回到没
  • sklearn.svm中LinearSVR(svm线性回归)、LinearSVC(svm线性分类)与SVC(svm分类)、SVR(svm回归)之间的区别

    区别 LinearSVC SVM线性分类器 用来实现线性的分类任务 鸢尾花数据集 执行一个分类问题 import numpy as np from sklearn pipeline import Pipeline from sklearn
  • AI大模型公开课来了!免费学习!

    Datawhale分享 课程 知乎AI大模型公开课 近几年AI发展迅猛 行业巨头争先布局AI领域 想切入大热的AI领域 却找不到方向 为了帮助大家零成本学习AI大模型技术 特邀一线大佬发起 AI大模型公开课 AI大模型进阶之旅 直播时间 9
  • 蓝桥杯单片机学习5——外部中断

    上期我们学习了独立按键 矩阵按键 这次我们来学习外部中断 蓝桥杯单片机学习 外部中断 中断 1 中断请求源 2 外部中断 3 中断寄存器 4 中断优先级 5 中断结构 6 中断函数 6 中断嵌套 实战环节 1 任务要求 2 代码实现 3 代
  • 伽罗华域GF,GF(256)来源

    Galois Field 1 域 2 域中单位元和逆元 3 有限域GF p p p 4 有限域GF
  • Element ui多选框实现单选且隐藏全选按钮

    添加表格多选框列
  • Solidworks导出URDF总结(Noetic)

    环境 Solidwoks2018 SP0 Solidwoks2021 SP5 Ubuntu20 04 ROS1 Noetic Solidwoks2018 SP0对于平移副有问题 显示不出来 Solidwoks2021 SP5没有问题 官网有
  • windows bat批量创建文件夹与文件

    一 新建bat文件 批量创建 bat echo off for f i in nameList txt do mkdir i copy muban docx i i docx do mkdir i copy muban docx i i d
  • JDK历史所有版本下载地址(附Oracle帐号)

    由于有时在新的电脑或者服务器上需要安装新的JDK 但现在下载JDK已经没有之前方便了 需要登录才能下载 今天在这里我就来把jdk所有的版本下载地址与帐号列出来 方便大家下载 JDK所有版本下载地址 Java SE 14 Java SE 13
  • 逆向工具常用操作

    IDA 加载文件 Windows 下 用IDA加载文件之后 会在文件同目录下生成几个文件 id0 二叉树数据库 id1 文件包含描述每个程序字节的标志 nam 包含IDA Name 窗口的数据库 til 本地数据库有关信息 常用快捷键 快捷
  • 1120 哈夫曼树的创建遍历查找当前节点的编码

    package com import java util ArrayList import java util Collections import java util LinkedList import java util Stack 类
  • 阿里架构精心整理出来一份(Nginx实战.pdf)资料,请签收

    前言 Nginx 很火 因为它就像一个万能药 在任何存在性能需求的场合总能找见它的身影 它可以轻松在百万并发连接下实现高吞吐量的 Web 服务 同时 类似于 OpenResty 和 Tengine 这样的第三方模块群 进一步发展出了新生态
  • sql注入详解

    目录 前言 一 漏洞原因分析 二 漏洞危害 三 sql注入防范 四 如何挖掘sql注入漏洞 五 常见的注入手法 联合查询 union注入 报错注入 基于布尔的盲注 基于时间的盲注 HTTP头注入 宽字节注入 堆叠查询 二阶注入 六 sql注
  • ElsticSearch学习:ElasticSearch基本概念

    ElasticSearch肯定要和我们常用的MySQL这些关系型数据库对比 ES是面向文档的 下面是一个对比 关系型数据库 例如MySQL ElasticSearch 数据库 database 索引 indicies 表 tables ty
  • substr函数用法详解

    substr string start lt length gt 从string的start位置开始提取字符串 length 要提取字符串的长度 若length为以下任意条件之一时 返回start位置到串尾的所有字符 length不指定 l