Giter Site home page Giter Site logo

zcl_regex's Introduction

Klasse ZCL_REGEX

ABAP-Klasse zur objektorientierten Kapselung von Regulären Ausdrücken.

Aufbau eines Regulären Ausdruckes

DATA(lv_regex) = '/<Regex>/<Parameter>'.

Der Regex-String, welcher in jede Methode der Klasse ZCL_REGEX gegeben wird, ist wie ein Regex aus JavaScript aufgebaut. Dies heißt das der Regex zwischen die '/' geschrieben wird, und am Ende Paremeter noch mitgegeben werden können. Mithilfe der Methode CONVERT_ABAP_REGEX können ABAP Regex Anweisungen in für die Klasse interpretierbare Anweisungen Konvertiert werden.

  • i : ignoring case (nicht Casesensitiv)
  • g : global (Suche findet global statt)

ABAP verwendet im Kernel die C++ Engine Boost.Regex 5.1.1. Demnach ist mit ABAP Regex nur möglich, was diese Engine bereitstellt. Für weitere informationen über ABAP Regex klicken Sie hier.

Die Klasse benutzt keine Non-SAP-Standard Entwicklungen, und kann einfach per Copy & Paste auf die Zielmaschine kopiert werden (Erfolgreich getestet in SAP GUI Version 7.50).

ZCL_REGEX=>MATCH

Methode zur Überprüfung, ob ein Regex in einem String gefunden wurde oder nicht.

Signatur

zcl_regex=>match( iv_val:string, iv_regex:string ) : rv_contains:boolean

Beispiel

IF abap_true = zcl_regex=>match( iv_val   = 'ABAP'
                                 iv_regex = '/a/i' ).
  " Regex wurde gefunden
ELSE.
  " Regex wurde nicht gefunden
ENDIF.

Dieser Aufruf gibt abap_true zurück.

zcl_regex=>match( iv_val   = 'ABAP'
                  iv_regex = '/a/' ).

Dieser Aufruf gibt abap_false zurück, da dieser Aufruf Casesensitiv ist.

Der Global Modifier ist für diese Methode irrelevant, da hier nur geschaut wird, ob der Regex mindestens einmal gefunden wird.

ZCL_REGEX=>MATCHES

Methode, welche die Ergebnisse der Suche als Tabelle zurück gibt.

Signatur

zcl_regex=>matches( iv_val:string, iv_regex:string ) : rt_matches:match_result_tab

Mit dem Modifier g (Global) werden alle vorkommenden Stellen gematched und ausgegeben, wenn dieser Modifier nicht angegeben ist, dann wird nur das Erste zurückgegeben.

Beispiel

DATA(lt_matches) = zcl_regex=>matches( iv_val   = 'Hallo Welt!'
                                       iv_regex = '/Welt/gi' ).

ZCL_REGEX=>MATCHES_AS_STRING

Methode welche die gefunden Strings als Tabelle zurückgibt.

Signatur

zcl_regex=>matches_as_string( iv_val:string, iv_regex:string ) : rt_strings:stringtab

Beispiel

DATA(lt_matches) = zcl_regex=>matches_as_string( iv_val   = 'Hallo Welt!'
                                                 iv_regex = '/Welt/gi' ).

Mit dem Modifier g (Global) werden alle vorkommenden Stellen gematched und ausgegeben, wenn dieser Modifier nicht angegeben ist, dann wird nur das Erste zurückgegeben.

Ergebnis:

["Welt"]

ZCL_REGEX=>SPLIT

Methode, welche einen String an einem Regex splittet.

Signatur

zcl_regex=>split( iv_val:string, iv_regex:string ) : rt_split:stringtab

Beispiel

DATA(lt_split) = zcl_regex=>split( iv_val   = 'Hallo/B/Welt!'
                                   iv_regex = '/\/B\//gi' ).

Ergebnis:

["Hallo", "Welt!"]

Wenn als Modifier kein g (global) mitgegeben wird, dann wird der String nur am ersten auftreten des Regex gesplittet.

ZCL_REGEX=>REPLACE

Methode, welche einen Regex durch einen anderen angegeben String ersetzen.

Signatur

zcl_regex=>replace( iv_val:string, iv_regex:string, iv_replace:string ) : rv_val:string

Beispiel

DATA(lv_result) = zcl_regex=>replace( iv_val     = 'ABAP'
                                      iv_regex   = '/a/ig'
                                      iv_replace = ':)' ).

Ergebnis

:)B:)P

zcl_regex's People

Contributors

jpnqs avatar

Stargazers

 avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.