SQL Server administration and T-SQL development, Web Programming with ASP.NET, HTML5 and Javascript, Windows Phone 8 app development, SAP Smartforms and ABAP Programming, Windows 7, Visual Studio and MS Office software Kodyaz SAP and ABAP Programming Tutorials
Development resources, articles, tutorials, samples, codes and tools for .Net, SQL Server, Vista, etc.




Win FREE BOOK
from Kodyaz



CRM Companies List
Web Based CRM Software

ABAP RegEx for ABAP Regular Expression to fetch Date from String

Regular expressions in ABAP can be handled by ABAP Regex using ABAP developers. The regular expression processor ABAP Regex is a powerful tool for developers to match particular patterns in a given text.

In this ABAP tutorial, I'ld like to give sample ABAP code which searches for dates in a given string variable. Date expressions can be in various forms like 29/02/2012 or 19.05.2011 or 20100706. Even dates can be written in format 1/1/2001 or 3/5/2012, etc. So the ABAP RegEx regular expression will return the list of dates in the given parametric string expression.

Please note that creating an regexp expression can be difficult and time consuming. So it is good to test regular expression in each step in your ABAP development process. During building complex ABAP Regex expressions in your coding, ABAP developers can use the regular expression tester Regex Toy to test and try their regular expression. Developers can run the Regex Toy ABAP regular expression tester application by running the ABAP report DEMO_REGEX_TOY using SE38 transaction.





In the below code I'll use a sample text (a dummy string) that includes dates in it.
Then within the user form uGetDatesRegEx where the ABAP regular expression function FIND ALL OCCURRENCES OF REGEX command is called to get all matching patterns into an internal table. The contents of the internal table is written on the screen.

Before running the below sample ABAP report I want to explain the ABAP RegEx pattern '(\d{1,2}[.|/]\d{1,2}[.|/]\d{4})|(\d{4}[.|/]\d{1,2}[.|/]\d{1,2})'

Please note that the regular expression pattern "\d" is for matching any number from 0 to 9.
\d{1,2} means the pattern matches for text with 1 or 2 digit number. It can be day number or month expression of the date
Similar to this the pattern \d{4} matches exactly with a string with 4 digit number. This pattern is used to fetch the year part of the date.
the regular expression pattern [.|/] means, we are looking for "." character or "/" character. Only one character is allowed here.
You might already know that "|" is logically OR expression.

The pattern is actually formed of two parts seperated by logical OR "|" expression.
The first part of the RegExp checks for dd/dd/dddd format (or d/dd/dddd, dd/d/dddd or d/d/dddd)
And the second part check similar where the year part is at the beginning of the date expression.

REPORT Z_RegEx_Fetch_Date_from_Text.
**
** Regular Expression Matching using ABAP RegEx
**

DATA gv_text TYPE string.
DATA gt_dates TYPE char10_t,
DATA ls_dates TYPE char10.

gv_text = 'Date of entry : 17.02.2012, Sample text including dates in various forms like 8.8.2008 or 21.03.2012 or 2013.08.17 in order to test Regular Expression in ABAP string operations'.
WRITE :/ gv_text.

PERFORM uGetDatesRegEx USING gv_text CHANGING gt_dates.

LOOP AT gt_dates INTO ls_dates.
 IF SY-TABIX = 1.
  WRITE :/ 'Matched date list :'.
 ENDIF.
 WRITE :/ ls_dates.
ENDLOOP.


FORM uGetDatesRegEx USING p_text TYPE string
 CHANGING pt_dates TYPE char10_t.

 DATA lv_txt TYPE string.
 DATA lv_pattern TYPE string.
 DATA lt_result_tab TYPE match_result_tab.
 DATA ls_submatch_result_tab TYPE match_result.

 lv_pattern = '(\d{1,2}[.|/]\d{1,2}[.|/]\d{4})|(\d{4}[.|/]\d{1,2}[.|/]\d{1,2})'.

 FIND ALL OCCURRENCES OF REGEX lv_pattern IN p_text RESULTS lt_result_tab.

 LOOP AT lt_result_tab INTO ls_submatch_result_tab.

  lv_txt = p_text+ls_submatch_result_tab-offset(ls_submatch_result_tab-length).
  APPEND lv_txt TO pt_dates.

 ENDLOOP.

ENDFORM.

When you execute the above ABAP report Z_RegEx_Fetch_Date_from_Text, the user form uGetDatesRegEx will return a list of date values that matches the given pattern "(\d{1,2}[.|/]\d{1,2}[.|/]\d{4})|(\d{4}[.|/]\d{1,2}[.|/]\d{1,2})" shown in below screenshot

ABAP RegEx sample for date matching Regular Expression

Recently in a Smart Form development, we have implemented this solution to get date from ZTERM text field. We have placed the uGetDatesRegEx form codes in the Smartform Form tab, so that any where within the SAP Smartform codes we could call this regular expression performing form routine. Then in a code block (Program Lines element of Smartform), we assigned the date value returned by the user form function to a text element and displayed the date on the output document.

I believe developers can use this regular expression in ABAP reports of their own by making changes according to their regular expression requirements. Don't forget to make RegEx test using the regular expressions RegEx pattern tester ABAP tool Regex Toy (tcode demo_regex_toy)







SAP Tutorials

SAP Tutorial

SAP Forums

SAP Tools

SAP Transaction Codes Table






Recent and Top SAP Tutorial and ABAP Tutorials

Unicode Character Problem in IFS File Interface
Read Pricing Condition Text using ABAP in SAP Sales Document Output
Export SAP Data to Fixed Length Text File
Save Table Contents into Text File and Download File
Business Document Service Error: Error when accessing graphic (BDS), RC = 5
Get Proforma Invoice from Commercial Invoice in ABAP
Convert Sales Unit into Text using Function Module in Target Language
Get Fullname of SAP user using Function Module in ABAP Program
ABAP Submit Report to Run Another ABAP Program within Code
Message no XS826: Cannot process message; no node determined for 76550052
SE63 Smartform Translation and Export using SLXT Program
VF31 SAP Transaction to Reprocess Billing Output Messages
Import and Export SO10 Standard Text using RSTXSCRP ABAP Program
CALL_FUNCTION_NOT_FOUND ABAP Run Time Error
SAP Output Management - Create New SAP Output Type
SAP Purchase Order Tables, Transaction Codes and Output
Assign SAP Item Category to Sales Document Type using SPRO
Window MAIN does not fit onto page PAGE (height)
SAP Invoice Output ZZZZ is not Defined
Invoice Output fail because of missing Billing Type text in TVFKT table
Read Integer and Decimals of a Numeric Value in ABAP Programming
SAP Smartforms Table Parameter in Form Routine
Complex Conditions in SAP Smartform with AND/OR
Free Adobe LiveCycle Designer Download
Create SAP Dynamic Variant using Date Calculation
Translate Web Dynpro Header Title displayed on Web Browser
ABAP RegEx for ABAP Regular Expression to fetch Date from String
Change Output Condition Records
Web Dynpro Text Translation using Assistance Class
Move Minus Sign from Right to Left of Negative Number in SAP Smartform
Read Address Data using FM ADDR_GET instead of Querying ADRC Table
Add Value Help to Web Dynpro Select Options
Add Web Dynpro Applications to SAP Favorites Menu
Component Usage ALV Does Not Have an Active Component
Web Dynpro Component Service Syntax Error in Program /1BCWDY/O3EC1AX6A3OVKK9L5FXO==CP
Web DynPro Tutorial - Display Spool Requests using Web DynPro Table
Web DynPro Tutorial - How to create Web Dynpro Application (Web Dynpro Component)
Display Data on Web DynPro Table Element
Test Web Dynpro ABAP Component by Creating Web Dynpro Application
Insert SAP Icons and Symbols on Smartform Documents
How to Display Text on Sap Smart Forms
Graphics White Background Displayed Grey on SAP Smartform Output
Get SAP Document Flow using SD_DOCUMENT_FLOW_GET ABAP Function Module
Convert Numeric Value or Currency into String Spell_Amount Function Module
How to Transport SAP Graphics using SE78 Transaction
How to Delete Standard Text using SO10 SAP Transaction
Dynamic Programming using Field Symbols in ABAP Reports
How to Disable Word Editor in SAP Smartform Text
How to Debug Popup Screen in ABAP
TVAP Item Category and SAP Table TVAPT for Text Translations
ABAP Runtime Error ST22 Transaction using Short Dump Analysis
Create Transport Request for Text Translations using RS_LXE_RECORD_TORDER
SAP Invoice Output Determination Analysis for Not Created Output Message
Set Default Single Values List for SAP Selection Screen Parameter
SAP Payment Terms Table and ZTERM Texts Table for ABAP Developers
How to Create SAPScript Text using SO10 Transaction Code
SAP Smartforms Tutorial - Table Calculations using Sum Total
SAP Smartforms Tutorial - Table Calculations using Count
SAP Smartforms Tutorial - How to Create Smartform
SAP NetWeaver Installation Guide using installshield wizard
SAP Smartforms Table for Sales Order and Invoice Outputs
Email Spool Request using SAPOffice - Spool to PDF
How to Display SAP Graphics using SE78 Transaction Code
SAPScript Transaction Codes
ABAP Tutorial - ABAP String Split Example Code
Sales Tables among ABAP Tables (SAP Sales and Distribution SD Tables)
How to Upload Data to SAP from Excel File using alsm_excel_to_internal_table Function Module
ALV Grid Color - Table Row Background Color in ALV List
Multi Color ALV Grid Color Alternate using ALV Layout info_fname Property
How to Debug SmartForms - Debugging SAP SmartForm in ABAP ?
ABAP - Create Hierarchy Tree List using rs_tree_construct, rs_tree_list_display and snodetext
Create CL_GUI_ALV_GRID ALV Grid Column Header using ABAP Data Element
ABAP Tutorial - SAP Split and ABAP Split String Function
Upload Data from Excel File in ABAP using TEXT_CONVERT_XLS_TO_SAP
SAP Tutorial - Convert Spool Request to PDF File using RSTXPDFT4 ABAP Report
SAP ABAP Tutorial - ALV Grid Example with cl_gui_alv_grid and Screen Painter
Convert Smartform to PDF in Print Preview Mode
SAP Smartforms Tutorial - Create Smartforms Example
SAP Smartforms - How to Call Smartform within ABAP Program
Complete List of SAP Modules






Copyright © 2004 - 2013 Eralper Yilmaz. All rights reserved.
Community Server by Telligent Systems