仅提取一部分字符串

2020-08-22 04:18发布

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


仅提取字符串的一部分,知道其结尾,

也就是说,当它遇到.csv时,直到第一个"/"向左

示例:

hello/word/file.csv

提取必须为:" file.csv"

显然它必须是动态的,这只是一个例子

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


仅提取字符串的一部分,知道其结尾,

也就是说,当它遇到.csv时,直到第一个"/"向左

示例:

hello/word/file.csv

提取必须为:" file.csv"

显然它必须是动态的,这只是一个例子

付费偷看设置
发送
5条回答
蓋茨
1楼-- · 2020-08-22 04:43

如果要使用字符串函数:

 data(newFileName)= segment(val =文件名索引=计数(val =文件名sub ='/')+ 1 sep ='/')。  

else:

将文件名'/'拆分为表数据(fileNameSplit)。
 数据(newFileName)= fileNameSplit [行(fileNameSplit)]。

-Mahesh

zhangjiyang1323
2楼-- · 2020-08-22 04:37

您可以直接编辑答案以更正错误;-)

me_for_i
3楼-- · 2020-08-22 04:27

使用正则表达式(此处仅用于证明正确性):

 ASSERT match(val ='/tmp/dir/file.txt'regex ='[^/] + [] *  $')='file.txt'。

[^ something]表示NOT,所以[^/]表示NOT/

+表示要重复前面的字符串 次数

$表示末尾必须出现字符串

[] *表示零或任意多个空格:与$ in结合使用时,这一点很重要 如果您的值是一个固定长度的字符字段(TYPE C LENGTH ...),因为它包含尾随空格。

昵称总是被占用
4楼-- · 2020-08-22 04:22

我认为您可以推断出要在代码中使用的语句:

 DATA(fileFullPath)=`/tmp/dir/file.txt`。
 DATA(fileName)= match(val = fileFullPath regex ='[^/] + [] * $')。
蓋茨
5楼-- · 2020-08-22 04:38

对于此特定用例,您可以使用:

< pre> METHODS get_filename 导入i_full_filename TYPE序列 返回值(r_result)TYPE字符串。 方法get_filename。 DATA组件的类型为string_table。 将i_full_name拆分为INTO TABLE组件。 r_result = components [lines(components)]。 ENDMETHOD。

很显然,我没有进行任何错误检查。

但是,无论使用哪种解决方案,我都建议将其封装在一种方法中-只是为了使之清楚。/p>

一周热门 更多>