Note that there are some explanatory texts on larger screens.

plurals
  1. PO
    primarykey
    data
    text
    <p>I succeed in using Regex with Java. I was inspired by <a href="http://archive.iprodeveloper.com/forums/aft/46094" rel="nofollow">this code from scott klement</a> and <a href="http://pic.dhe.ibm.com/infocenter/iseries/v7r1m0/index.jsp?topic=/rzasc/sc092507220.htm" rel="nofollow">that code from ibm</a>. The mix works well. I just added the replace function.</p> <pre><code> H /include QSYSINC/QRPGLESRC,JNI D newString pr O CLASS(*JAVA:'java.lang.String') D EXTPROC(*JAVA:'java.lang.String': D *CONSTRUCTOR) D bytearray 32767A VARYING CONST D getBytes PR 65535A VARYING D EXTPROC(*JAVA: D 'java.lang.String': D 'getBytes') D PatternCompile pr O CLASS(*JAVA: D 'java.util.regex.Pattern') D EXTPROC(*JAVA: D 'java.util.regex.Pattern': D 'compile') STATIC D pattern O CLASS(*JAVA:'java.lang.String') D PatternMatcher pr O CLASS(*JAVA: D 'java.util.regex.Matcher') D EXTPROC(*JAVA: D 'java.util.regex.Pattern': D 'matcher') D comparestr O CLASS(*JAVA D :'java.lang.CharSequence') D CheckMatches pr 1N EXTPROC(*JAVA D :'java.util.regex.Matcher' D :'matches') D DoReplace pr O CLASS(*JAVA:'java.lang.String') D EXTPROC(*JAVA D :'java.util.regex.Matcher' D :'replaceAll') D replacement O CLASS(*JAVA D :'java.lang.String') D RegExPattern s O CLASS(*JAVA: D 'java.util.regex.Pattern') D RegExMatcher s O CLASS(*JAVA: D 'java.util.regex.Matcher') D jstrStmt s like(jstring) D jPatStr s like(jstring) D jRepStr s like(jstring) D jRepStr2 s like(jstring) D result S 30A /free jPatStr = newString('^(\+33|0)([1-9][0-9]{8})$'); jstrStmt = newString('+33123456789'); jRepStr = newString('0$2'); RegExPattern = PatternCompile(jPatStr); RegExMatcher = PatternMatcher(RegExPattern : jstrStmt); if (CheckMatches(RegExMatcher) = *ON); dsply ('it matches'); else; dsply ('it doesn''t match'); endif; jRepStr2 = DoReplace(RegExMatcher : jRepStr); result = getBytes(jRepStr2); dsply (%subst(result : 1 : 30)); *inlr = *on; /end-free </code></pre> <p>It works, but with Java. I still work on the PASE Solution WarrenT suggested, but using PASE in an ILE program is such a pain...</p>
    singulars
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    plurals
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. VO
      singulars
      1. This table or related slice is empty.
    2. VO
      singulars
      1. This table or related slice is empty.
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload