I want a regular expression to extract text between EVALUATE and END-EVALAUTE or . which ever comes first.
Presently i am using regular expression:
EVALUATE\\s*(((?!EVALUATE|(END-EVALUATE|\\.)).)+)\\s*(END-EVALUATE|\\.)
But my problem is i do not want to consider . if it comes within double quotes.
Please suggest any better regular expression or correct the one i have mentioned above.
Thanks in advance.
You could try this:
A Java demo:
which prints:
EVALUATE WS-ADDITIONAL-FILE-WORK WHEN "ACCNT" IF LINK-TRIG-FILE-NAME NOT = "ACTMSTR " PERFORM 04510-GET-ACCOUNT-MASTER ELSE MOVE "0106H" TO WS-ERROR-CODE PERFORM 09000-PROCESS-ABORT-ERROR END-IF WHEN "ADDRM" IF LINK-TRIG-FILE-NAME NOT = "ADDRMSTR " IF PROGRAM-HBMS-RELEASE (1:3) > "5.0" PERFORM 04520-GET-ADDRESS-MASTER END-IF ELSE MOVE "0106H" TO WS-ERROR-CODE PERFORM 09000-PROCESS-ABORT-ERROR END-IF WHEN OTHER MOVE "0106F" TO WS-ERROR-CODE PERFORM 09000-PROCESS-ABORT-ERROR END-EVALUATE