ABAP的匹配

ABAP的匹配

  • 通配符

    1. 字符串操作中的通配符

      • *:多位字符的通配符

      • +:一位字符的通配符

      • #:字符操作中的转义符

        REPORT ztest_placeholder.
        
        DATA:l_name(8) TYPE c VALUE 'ZhangSan'.
        
        * *号是多位的通配符
        IF l_name CP '*San'.
          WRITE: '*:YES'.
        ELSE.
          WRITE: '*:NO'.
        ENDIF.
        
        * +号是一位通配符
        IF l_name CP '+San'.
          WRITE:/ '+:YES'.
        ELSE.
          WRITE:/ '+:NO'.
        ENDIF.
        
        

        输出
        *:YES

        +:NO

    2. OPEN SQL where条件中通配符

      • %:多位字符的通配符

      • _:一位字符的通配符

      • ESCAPE:Where条件中转义符

        TABLES:makt.
        SELECT SINGLE *
          FROM makt
         WHERE spras = 1
           AND maktx LIKE '%/_' ESCAPE '/' .
        
  • CA,CO,CS,CP

  1. CA(Contain Any)

    str1 ca str2 遍历str1,其中的每个字符对应到str2的每个字符,如果对应成功,注意:只要有一个字符成功,就为true.

    str1 = '我a'.  
    str2 = 'hubab'.
    str1 ca str2 -true
  2. CO(Contain Only)

    str1 co str2 遍历str1,其中的每个字符对应到str2的每个字符,如果对应成功,注意:str1中的每一個字符成功,就为true.

    可用于判断是否为数字。ca ‘0123456789’

    扫描二维码关注公众号,回复: 5523530 查看本文章
    str1 = '我a'.  
    str2 = 'hubab'.
    str1 ca str2 -false
    
    str1 = 'ba'.
    str2 = 'hubab'.
    str1 ca str2 -true
  3. CS(Contain String)

    str1 cs str2 str1 是否包含str2。

  4. CP(Contain Pattern)

    加入通配符的匹配

    str1 = 'aac'   
    str2 = '#aA#c
    str1 cp str2 -true
    
    str1 = 'aAc'   
    str2 = '#aA#c' 
    str1 cp str2 -true
  5. NOTE

    • CO / CN contains only or not

    • CA / NA contains any or not any

    • CS / NS contain string or not

    • CP / NP contains pattern or not

    • CO, NO, CA, NA比较时区分大小写, 并且尾部空格也在比较的范围之内

    • CS, NS, CP, NP不区分大小写和尾部空格

    • 比较结束后,如果结果为真,sy-fdpos将给出s2在s1中的偏移量信息

    str1 = '123abc123' 
    str2 = '*abc*'    
    sy-fdpos = 3.

猜你喜欢

转载自www.cnblogs.com/aurora-cj/p/10526286.html
今日推荐