zoukankan      html  css  js  c++  java
  • 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’

      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.
      
    • 使用正则表达式

      ^表示否定

      FIND FIRST OCCURRENCE OF REGEX '[^a-zA-Z]' IN p_input3.
      IF sy-subrc = 0.
          MESSAGE 'There is some non-letter in your input.' TYPE 'E'.
      ENDIF.
      
  • 相关阅读:
    算法--有序矩阵查找指定数
    算法--三色排序(经典的荷兰国旗问题)
    算法--两个有序数组合并
    Latex 学习之旅
    Windows 下安装 tensorflow & keras & opencv 的避坑指南!
    platform 模块
    `__pycache__` 是什么
    Markdown 实现首行缩进
    LaTex 小技巧
    LaTeX算法排版 笔记
  • 原文地址:https://www.cnblogs.com/aurora-cj/p/10526286.html
Copyright © 2011-2022 走看看