请与正则表达式帮助

2020-09-28 06:38发布

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

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


嗨,

我对Regex非常陌生,实际上我对ABAP完全陌生:)

我试图弄清楚为什么使用这段代码与使用Regex Toy时的结果会有所不同。

我要尝试的是替换最后一个"。"之后的数字。

我的正则表达式为[^。] * $,表示文本" DV-102.1.1"替换为2

正则表达式玩具会给我正确答案。...DV-102.1.2

使用该ABAP代码片段,但是它没有...它给了我DV-2

报告znw_regex_play。

         DATA lv_count TYPE i值1。
         数据(lv_new_wbs_no)= lv_count + 1。
         DATA(lv_val)='DV-102.1.1'。
        
 SPLIT lv_val AT匹配(val = lv_val
                        regex ='[^。] * $')放入DATA(lv_wbs_part1)DATA(lv_wbs_part2)。
     
 lv_val = lv_wbs_part1 && lv_new_wbs_no。

         写:lv_val。

 

谁能告诉我我哪里出问题了?

谢谢。

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

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


嗨,

我对Regex非常陌生,实际上我对ABAP完全陌生:)

我试图弄清楚为什么使用这段代码与使用Regex Toy时的结果会有所不同。

我要尝试的是替换最后一个"。"之后的数字。

我的正则表达式为[^。] * $,表示文本" DV-102.1.1"替换为2

正则表达式玩具会给我正确答案。...DV-102.1.2

使用该ABAP代码片段,但是它没有...它给了我DV-2

报告znw_regex_play。

         DATA lv_count TYPE i值1。
         数据(lv_new_wbs_no)= lv_count + 1。
         DATA(lv_val)='DV-102.1.1'。
        
 SPLIT lv_val AT匹配(val = lv_val
                        regex ='[^。] * $')放入DATA(lv_wbs_part1)DATA(lv_wbs_part2)。
     
 lv_val = lv_wbs_part1 && lv_new_wbs_no。

         写:lv_val。

 

谁能告诉我我哪里出问题了?

谢谢。

付费偷看设置
发送
8条回答
95年老男孩
1楼 · 2020-09-28 06:57.采纳回答

DEMO_REGEX_TOY(查找正则表达式)并进行匹配,其工作原理相同。 将正则表达式[^。] * $应用于'DV-102.1.1',它们都返回" 1"。

您的问题仅在于SPLIT,因为SPLIT'DV-102.1.1'AT'1'INTO part1 part2给出了两个分段'DV-'和'02 .1.1'。

有很多方法可以做你想要的。 我会选择

使用lv_new_wbs_no在lv_val中替换正则表达式'[^。] * $'。

 lv_val = replace(val = lv_val regex ='[^。] * $'with = lv_new_wbs_no)。
lukcy2020
2楼-- · 2020-09-28 07:06

这个答案是错误的。

您认为特殊替换运算符

一周热门 更多>