| 
<?php
// test Regex class methods
 // this script should be run in command-line mode
 include ( 'Regex.class.php' ) ;
 
 if  ( php_sapi_name ( )  ==  'cli' )
 {
 $eol    =  PHP_EOL ;
 $tab    =  "\t" ;
 }
 else
 {
 $eol    =  "<br/>" ;
 $tab    =  str_repeat ( " ", 8 ) ;
 }
 
 
 // IsRegex() method example
 $re    =
 [
 '/foo bar/',                // valid
 '#foo bar#imsx',            // valid
 '/foo bar'                // invalid
 ] ;
 
 foreach  ( $re  as  $item )
 echo ( "Regex::IsRegex ( $item ) = " . ( ( Regex::IsRegex ( $item ) ) ? 'true' : 'false' ) . $eol ) ;
 
 echo ( $eol ) ;
 
 // Matches() example
 $matches    =
 [
 [ 'file.txt', '*.txt' ],        // match
 [ 'file.txt', 'file.*' ],        // match
 [ 'dir/file.txt', '*.txt' ],        // no match
 [ 'dir/file.txt', 'dir/*.txt' ],    // match
 [ 'dir/file.txt', '*/*.txt' ],        // match
 [ 'dir/file.txt', '*\\file.txt' ]    // match
 ] ;
 
 foreach ( $matches  as  $match )
 echo ( "Regex::Matches ( {$match [0]}, {$match [1]} ) = " . ( ( Regex::Matches ( $match [0], $match [1] ) ) ? 'true' : 'false' ) . $eol ) ;
 
 echo ( $eol ) ;
 
 // DevelopExpression() example
 $expressions    =
 [
 'file[0-9].txt',            // Gives 'file0.txt' to 'file9.txt'
 'file[a-c][0-2].bin'            // Gives 'filea0.bin' to 'filea2.bin', 'fileb0.bin' to 'fileb2.bin', etc.
 ] ;
 
 
 foreach (  $expressions  as  $expression )
 {
 echo ( "Regex::DevelopExpression ( $expression ) = $eol$tab" ) ;
 $developed_expressions    =  Regex::DevelopExpression ( $expression ) ;
 echo ( rtrim ( str_replace ( "\n", "$eol$tab", print_r ( $developed_expressions, true ) ) ) ) ;
 echo ( "$eol" ) ;
 }
 
 echo ( $eol ) ;
 
 // PregMatchEx() example
 $subject    =  "a:1 b:2" ;
 $re        =  '/(?P<sequence> (?P<letter> [a-z]) : (?P<digit> [0-9])) \s (?P<sequence> (?P<letter> [a-z]) : (?P<digit> [0-9]))/imsx' ;
 
 echo ( "Regex::PregMatchEx ( $subject, $re, WIPE ) : " ) ;
 $result        =  Regex::PregMatchEx ( $re, $subject, $match, PREG_WIPE_MATCHES | PREG_OFFSET_CAPTURE ) ;
 echo ( "\t" . str_replace ( "\n", "$eol$tab", print_r ( $match, true ) ) ) ;
 echo ( $eol ) ;
 
 echo ( "Regex::PregMatchEx ( $subject, $re, NOWIPE ) : " ) ;
 $result        =  Regex::PregMatchEx ( $re, $subject, $match, PREG_OFFSET_CAPTURE ) ;
 echo ( "\t" . str_replace ( "\n", "$eol$tab", print_r ( $match, true ) ) ) ;
 echo ( $eol ) ;
 
 
 // MetaPregMatchEx() example
 $regex_list    =
 [
 '1' => '/message start/',
 '2' => '/log: \s* (?P<logmessage> .*)/imsx',
 '3' => '/message end/'
 ] ;
 $sequence    =  '/ \1 \2* \3 /imsx' ;
 $lines        =
 [
 'message start',
 'log: this is log message 1',
 'log: this is log message 2',
 'message end'
 ] ;
 
 echo ( "Regex::MetaPregMatchEx ( ) = " ) ;
 $status        =  Regex::MetaPregMatchEx ( $sequence, $regex_list, $lines ) ;
 echo ( ( $status ) ?  'true' : 'false' ) ;
 
 |