在特定位置后查找字符串

2020-08-27 16:20发布

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

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


尊敬的专家,

我有一个字符串如下

Data(v_string)='12345 *** 678 ** 9'

我需要在数字8之后得到*的位置。

我不能使用:

在v_string匹配偏移pos中查找" *"的第一次出现

因为它只返回第一个*出现的位置,即第5个之后的位置。

我不能使用

搜索...从...开始...。因为它无法识别*。

那么有没有办法做到这一点?

谢谢

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

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


尊敬的专家,

我有一个字符串如下

Data(v_string)='12345 *** 678 ** 9'

我需要在数字8之后得到*的位置。

我不能使用:

在v_string匹配偏移pos中查找" *"的第一次出现

因为它只返回第一个*出现的位置,即第5个之后的位置。

我不能使用

搜索...从...开始...。因为它无法识别*。

那么有没有办法做到这一点?

谢谢

付费偷看设置
发送
5条回答
spaceman01
1楼 · 2020-08-27 16:52.采纳回答

然后查找所有事件?

 DATA(v_string)='12345 *** 678 ** 9'。
 DATA(_regex)='[^ \ *] \ *'。
 在v_string结果数据(子)中查找regex _regex的所有事件。
Aaron 3364
2楼-- · 2020-08-27 16:47

基本算法问题。 当然可以。 我认为如果您使用ABAP 子字符串查找处理功能(请参阅ABAP文档 )。

野沐沐
3楼-- · 2020-08-27 16:47

嗨,

首先找到数字的出现位置(在您的示例中为8)。 然后尝试使用字符串偏移量获取下一个字符。

谢谢。

me_for_i
4楼-- · 2020-08-27 16:50

尝试如下操作

 DATA:lv_str TYPE字符串VALUE'123 ** 34 **',
        lv_offset TYPE i,
        lv_var1 TYPE字符串,
        lv_var2 TYPE字符串。

 "现在在这里,我需要找到*的偏移量,该偏移量是4之后
 "是的,我已经知道我需要找出* afetr 4的出现,我将首先将其分为两个半,然后在第二个半中将搜索*

 在``4''处将lv_str拆分为lv_var1 lv_var2。
 在lv_var2匹配偏移lv_offset中查找" *"的第一次出现。
 
风早神人
5楼-- · 2020-08-27 17:06

您好 Samuel Indrajaya 尝试使用REGEX,可以 使用REGEX可以实现,请参阅以下有关如何使用REGEX的博客,请参阅演示程序DEMO_REGEX_TOY

REGEX演示程序DEMO_REGEX_TOY

ABAP中的REGEX

一周热门 更多>