将源字段中多个值中的必需字符传递到目标字段

2020-08-13 23:38发布

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

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


大家好,

能否帮助我将所需字符从源字段值传递到目标字段。 但是这里的挑战是Source字段值由多个值组成并且不固定

Ex1: 2210- E ,2210- 7 ,3320- 0 ===> E 7 0

Ex2: 2345- 9 ,2210- B ,5467- D ,3456- 7 ===> 9BD7

您能帮助UDF完成这项工作吗,任何帮助将不胜感激。

谢谢花园

穆拉利P

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

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


大家好,

能否帮助我将所需字符从源字段值传递到目标字段。 但是这里的挑战是Source字段值由多个值组成并且不固定

Ex1: 2210- E ,2210- 7 ,3320- 0 ===> E 7 0

Ex2: 2345- 9 ,2210- B ,5467- D ,3456- 7 ===> 9BD7

您能帮助UDF完成这项工作吗,任何帮助将不胜感激。

谢谢花园

穆拉利P

付费偷看设置
发送
4条回答
追夢秋陽
1楼 · 2020-08-14 00:08.采纳回答

您可以使用正则表达式提取值。 有效的正则表达式可能看起来像\ d {4}-(。),?
检查以下链接以获取示例: https://regex101.com/r/20IUir/1

然后编写一个小的UDF,使用该正则表达式提取信息:

字符串输入 =" 2345-9,2210-B,5467-D,3456-7";
 字符串输出="";
 模式模式= Pattern.compile(" \\ d {4}-(。),?");
 Matcher matcher = pattern.matcher(input);

 而(matcher.find()){
      输出+ = matcher.group(1);
 }
 返回输出;
 

您可以在此处找到正在运行的演示: http://tpcg.io/OiGw76H0

风早神人
2楼-- · 2020-08-14 00:20

用[A-Z0-9]替换正则表达式中的\\ d
您可能还需要查看以下出色的正则表达式教程: https://medium.com/factory-mind/regex-tutorial-a-simple-cheatsheet-by-examples-649dc1c3f285

Baoming ROSE
3楼-- · 2020-08-14 00:09

Hello Raffael,

感谢您的回复,它有效:)

如果4位数输入模式为字母数字,例如:String input =" 2C4D-9,ABGH-B,5467-D,F45C-7",您能帮我吗?

再次感谢您的帮助:)

致谢

Moulali P

半个程序猿
4楼-- · 2020-08-14 00:27

是的。 感谢您的帮助

一周热门 更多>