Regular expressions application examples
Example 1: Include all records that contain string 'Department'(case-insensitive) using
Regular
expressions:
//STEP0100 EXEC PGM=SORT
//SYSOUT DD SYSOUT=*
//SORTDIAG DD DUMMY
//SORTIN DD *
lower case florida department of Palm trees
UPPER CASE FLORIDA DEPARTMENT OF ORANGE GROVES
exclude this record California state
alternate case FlOrIdA DePaRtMeNt Of PaLm TrEeS
sentence Florida Department Of Revenue
Mixed case ARIZONA DEPARTment of Motor Vehicles
//SORTOUT DD SYSOUT=*
//SYSIN DD *
OPTION COPY
INCLUDE COND=(25,50,SS,RE,C'DEPARTMENT')
//*
Using the string C’department’ or C'DePaRtMeNt' will also produce the same exact result.
This example illustrates how to include only records in which:
- DEPARTMENT (case-insensitive) is found somewhere within bytes 25 through 74
- Using the string C’department’ or C'DePaRtMeNt' will also produce the same exact results.
The Output from the above job
is:
lower case florida department of Palm trees
UPPER CASE FLORIDA DEPARTMENT OF ORANGE GROVES
alternate case FlOrIdA DePaRtMeNt Of PaLm TrEeS
sentence Florida Department Of Revenue
Mixed case ARIZONA DEPARTment of Motor Vehicles
Example 2: Omit records which contain one or more occurrences of a character or hex
strings using Regular
expressions.
//STEP0100 EXEC PGM=SORT
//SYSOUT DD SYSOUT=*
//SORTIN DD *
record - 1 1234500\x00a ANZ]'' string CD0
record - 2 12345111EAND'45678901234567890
record - 3 123452289012RRAA"890....567890
record - 4 1234533\x00a SIMPLE string CD0
record - 5 12345441EANx000! B1
record - 6 123456789012345fizZZ
record - 7 123456789012345678901234567890
/*
//SORTOUT DD SYSOUT=*
//SYSIN DD *
OPTION COPY
OUTFIL OMIT=(25,032,SS,REH,C'(.*Z+)|(.*\XC2\XF1.*)')
//*
This example illustrates how to exclude records in which:
- One or more character ‘z’ (Case-insensitive) is followed by any character OR the records that contain hex values of X’C2F1’ which is equivalent to characters ‘B1’ are found somewhere within bytes 25 through 56.
The output from this job
is:
record - 2 12345111EAND'45678901234567890
record - 3 123452289012RRAA"890....567890
record - 4 1234533\x00a SIMPLE string CD0
record - 7 123456789012345678901234567890
Example 3: Include all records that contain string 'ER'(case-sensitive) followed by a
numeric (0-9) using Regular
expressions.
//STEP0100 EXEC PGM=SORT
//SYSOUT DD SYSOUT=*
//SORTIN DD *
MORGAN STANLEY
ERIC
HOLMER CA 90201
WALTER ALBUQUERQUENEW MEXICO
TONY NY 10000
JERRY 10029 NEW YORK
SHERLOCK
//SORTOUT DD SYSOUT=*
//SYSIN DD *
OPTION COPY
INCLUDE COND=(1,50,SS,RE,C'(ER).*[0-9]')
//*
This example illustrates how to include only records in which:
- ER (case-insensitive) is found somewhere within bytes 1 through 50 and have a number (0-9) following the string ER.
The output from this job
is:
HOLMER CA 90201
JERRY 10029 NEW YORK
