2020-08-22 04:18发布
加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)
仅提取字符串的一部分,知道其结尾,
也就是说,当它遇到.csv时,直到第一个"/"向左
示例:
hello/word/file.csv
提取必须为:" file.csv"
显然它必须是动态的,这只是一个例子
如果要使用字符串函数:
data(newFileName)= segment(val =文件名索引=计数(val =文件名sub ='/')+ 1 sep ='/')。
else:
将文件名'/'拆分为表数据(fileNameSplit)。 数据(newFileName)= fileNameSplit [行(fileNameSplit)]。
-Mahesh
您可以直接编辑答案以更正错误;-)
使用正则表达式(此处仅用于证明正确性):
ASSERT match(val ='/tmp/dir/file.txt'regex ='[^/] + [] * $')='file.txt'。
[^ something]表示NOT,所以[^/]表示NOT/
+表示要重复前面的字符串 次数
$表示末尾必须出现字符串
[] *表示零或任意多个空格:与$ in结合使用时,这一点很重要 如果您的值是一个固定长度的字符字段(TYPE C LENGTH ...),因为它包含尾随空格。
我认为您可以推断出要在代码中使用的语句:
DATA(fileFullPath)=`/tmp/dir/file.txt`。 DATA(fileName)= match(val = fileFullPath regex ='[^/] + [] * $')。
对于此特定用例,您可以使用:
很显然,我没有进行任何错误检查。
但是,无论使用哪种解决方案,我都建议将其封装在一种方法中-只是为了使之清楚。/p>
最多设置5个标签!
如果要使用字符串函数:
else:
-Mahesh
您可以直接编辑答案以更正错误;-)
使用正则表达式(此处仅用于证明正确性):
[^ something]表示NOT,所以[^/]表示NOT/
+表示要重复前面的字符串 次数
$表示末尾必须出现字符串
[] *表示零或任意多个空格:与$ in结合使用时,这一点很重要 如果您的值是一个固定长度的字符字段(TYPE C LENGTH ...),因为它包含尾随空格。
我认为您可以推断出要在代码中使用的语句:
对于此特定用例,您可以使用:
< 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>
一周热门 更多>