以下は、Progress からの今朝の PANS 電子メールに現れました。
http://knowledgebase.progress.com/articles/Article/000039027?popup=true
次の例は、ABL 内で正規表現を使用する方法を示しています。
/*
* IN TESTING, THIS DOESN'T WORK WITH MY INSTALLATION OF VERSION 10.2B RHEL 6,
* BUT IT DOES WORK WITH VERSION 10.2B WINDOWS INSTALLATION
*
* THE ERROR RETURNED ON THE LINUX ENVIRONMENT IS:
* │Could not find class or interface Regex. (12886)
*/
USING System.Text.RegularExpressions.*.
DEFINE VARIABLE chaine AS CHARACTER NO-UNDO INIT "test@test.com".
DEFINE VARIABLE i AS INTEGER NO-UNDO.
DEFINE VARIABLE regexp AS CLASS Regex NO-UNDO.
regexp = NEW Regex("^[^\x00-\x1F^\(^\)^\<^\>^\@^\,^\;^\:^\\^\~"^\.^\[^\]^\s]+(\.[^\x00-\x1F^\(^\)^\<^\>^\@^\,^\;^\:^\\^\~"^\.^\[^\]^\s]+)*@([^\x00-\x1F^\(^\)^\<^\> ^\@^\,^\;^\:^\\^\~"^\.^\[^\]^\s]+(\.[^\x00-\x1F^\(^\)^\<^\>^\@^\,^\;^\:^\\^\~"^\.^\[^\]^\s]+))+$").
DO i = 1 TO 100:
IF regexp:IsMatch(chaine) THEN MESSAGE "OK".
ELSE MESSAGE "KO" .
END.
DELETE OBJECT regexp.
上記のコード例は、Windows 専用です。UNIX (または Linux) で正規表現を使用するには、その OS に適したライブラリを使用する必要があります。例はここにあります:
http://dbappraise.com/ppt/shlib.pptx