如何解析字符串内容
字符串进行解析,主要使用两个字符串函数:substr()函数和find()函数
substr()函数
SUBSTR(字符串, 开始位置, [长度]) 从开始位置(字符串从1开始计数)截取指定长度的字符串返回,长度为可选参数,不给则默认截取到字符串尾部。
示例: SUBSTR("abc123", 1, 3) = "abc", SUBSTR("abc123", 1) = "abc123"
find()函数
FIND(字符串, 子串, [起始位置]) 返回子字符串在字符串中的位置,如果未找到子字符串,则返回0。起始位置为可选参数,如果给定此参数则从此位置开始查找,字符串中的第一个字符串为位置1
示例: FIND("Calculation", "alcu") = 2
如果字符串各个部分字符的长度一致,可以直接使用substr函数解析
场景一:对于记录日期的字符串,格式为yyyymmdd,可以按规律通过substr截取日期的各个部分
年:substr("yyyymmdd",1,4)="yyyy"
月:substr("yyyymmdd",5,2)="mm"
日:substr("yyyymmdd",7,2)="dd"
如果截取的字符串部分内容长度不确定,则需要使用substr和find函数组合解析
场景二:需要通过以下的[字符串]字段获取员工的姓名以及业绩分数
[字符串]
本月小明业绩100分
本月小芳业绩100分
本月王铁蛋业绩99分
步骤一:使用find函数获取所需内容的开始位置
姓名开始位置固定,分数开始位置不固定,需要通过find函数获取分数的开始位置
姓名定位:3
分数定位:find([字符串],"业绩")+2
步骤二:使用find函数获取所需内容的长度 因为员工的姓名以及分数长度都是不确定的,需要通过find函数获取它们的长度
姓名长度:find([字符串],"业绩")-3
分数长度:find([字符串],"分")-find([字符串],"业绩")-2
步骤三:使用substr函数解析字符串
姓名:SUBSTR([字符串],[姓名定位],[姓名长度])
分数:substr([字符串],[分数定位],[分数长度])
结果: