FM用于字符串比较

2020-08-19 02:42发布

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

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


我有两个变量,例如ABC和CDS,并且其中包含文本。 我只是想比较两者是相同的文本还是不同的文本。 如果某些字符匹配,则要显示那些匹配的字符...

让我知道任何FM ...

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

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


我有两个变量,例如ABC和CDS,并且其中包含文本。 我只是想比较两者是相同的文本还是不同的文本。 如果某些字符匹配,则要显示那些匹配的字符...

让我知道任何FM ...

付费偷看设置
发送
13条回答
葫芦娃快救爷爷
1楼 · 2020-08-19 03:04.采纳回答

Hi Himanshu

您可以检查以下示例-示例

将string2在空格处拆分为表数据(wordlist)。
 然后循环到单词表
          match(val = <您的可搜索字符串> regex =  occ = 1)
      endloop 

可能需要更正语法

My梦
2楼-- · 2020-08-19 03:06

检查它们是否相同应该很容易,对吗?

但是您的要求是什么 检查比赛? 您需要更具体地寻找所需的匹配类型以及输出结果是什么? 因为可以存在多个匹配项。

ABC ='ABKLBYZ'。
CDS ='ABLKAYZ'。

我为上述示例"查找"以下匹配项:

  1. AB
  2. K
  3. L
  4. A
  5. B
  6. YZ

=>您在寻找什么"匹配项"? 您是否只是在寻找变量的匹配前缀,这也应该很容易,对吧?

3楼-- · 2020-08-19 02:51
Himanshu Kawatra

,因此,您只对完全匹配或匹配的前缀感兴趣,对吗?在这种情况下,下面的编码将很简单并且完全足够,但是可能需要进行测试并明确修改以防您 变量abc和cds的长度或字符串不同,可以避免一个变量的内容长于另一个变量时的转储。 (例如,使用strlen(var)检查变量内容的长度,并且当前缀短于变量内容的长度时,仅与变量abs和cds的部分前缀进行比较。)

数据匹配,例如abc。  "匹配的前缀
 数据完全匹配找到TYPE boole_d。
 DATA prefixmatchfound类型TYPE boole_d。

 如果abc = cds。
  匹配= abc。
  fullmatchfound = abap_true。
 其他。
   sy-subrc = 0。
   当sy-subrc = 0时。
     如果abc(sy-index)= cds(sy-index)。
       匹配= abc(sy-index)。
       prefixmatchfound = abap_true。
     其他。
       sy-subrc = 8。
     万一。
   结束。
 ENDIF。

让我知道是否有帮助。 (我没有测试它,所以让我知道它是否未编译或是否引发了意外的转储)

bbpeas
4楼-- · 2020-08-19 02:47

您的意思是字符串的" diff"? 最终查看此其他问题

Climb_Ma
5楼-- · 2020-08-19 03:07
数据:lv_abc类型c长度10值'ABCDEF',
       lv_def TYPE c长度10值'ABCDEFG'。
   如果lv_abc CS lv_def和strlen(lv_abc)EQ strlen(lv_def)。
     WRITE:"相同字符串"。
   ENDIF。
代楠1984
6楼-- · 2020-08-19 03:00

Himanshu Kawatra ,请继续回答您的公开问题。

  • 评论答案或您的问题是否还有未解决的问题。
  • 否则将答案标记为接受,如果它可以帮助您解决问题
  • 或发布您自己的答案并接受 如果您自己找到了另一个有用的解决方案
  • ,或者将您的问题重定向到另一个相关且对解决您的问题有用的问题
  • 最后,请关闭您的问题
三十六小时_GS
7楼-- · 2020-08-19 02:52

您可以使用CS操作

字符串比较

一周热门 更多>