Example #1
0
 /**
  * A factory method for creting a new RegEx(…);
  * useful for the common case of use-it-once.
  * @return RegEx
  */
 public static function make($undelimitedPattern = null)
 {
     $exp = new RegEx($undelimitedPattern);
     $modifiers = array_slice(func_get_args(), 1);
     if (!empty($modifiers)) {
         $exp->setModifiers(implode($modifiers));
     }
     return $exp;
 }
Example #2
0
 public static function runtestsRegex()
 {
     $loop_regex_pcre_len18 = function ($count) {
         $result = 0;
         $instance = new RegEx();
         for ($iter = 0; $iter < $count; $iter++) {
             $result += $instance->regexPCRELen18();
         }
         return $result;
     };
     TimeHHOperations::timeop('regex_pcre_len18', $loop_regex_pcre_len18);
     $loop_regex_posix_len18 = function ($count) {
         $result = 0;
         $instance = new RegEx();
         for ($iter = 0; $iter < $count; $iter++) {
             $result += $instance->regexPOSIXLen18();
         }
         return $result;
     };
     TimeHHOperations::timeop('regex_posix_len18', $loop_regex_posix_len18);
     $loop_regex_byhand_len18 = function ($count) {
         $result = 0;
         $instance = new RegEx();
         for ($iter = 0; $iter < $count; $iter++) {
             $result += $instance->regexByHandLen18();
         }
         return $result;
     };
     TimeHHOperations::timeop('regex_byhand_len18', $loop_regex_byhand_len18);
     $loop_regex_pcre_len85 = function ($count) {
         $result = 0;
         $instance = new RegEx();
         for ($iter = 0; $iter < $count; $iter++) {
             $result += $instance->regexPCRELen85();
         }
         return $result;
     };
     TimeHHOperations::timeop('regex_pcre_len85', $loop_regex_pcre_len85);
     $loop_regex_posix_len85 = function ($count) {
         $result = 0;
         $instance = new RegEx();
         for ($iter = 0; $iter < $count; $iter++) {
             $result += $instance->regexPOSIXLen85();
         }
         return $result;
     };
     TimeHHOperations::timeop('regex_posix_len85', $loop_regex_posix_len85);
     $loop_regex_byhand_len85 = function ($count) {
         $result = 0;
         $instance = new RegEx();
         for ($iter = 0; $iter < $count; $iter++) {
             $result += $instance->regexByHandLen85();
         }
         return $result;
     };
     TimeHHOperations::timeop('regex_byhand_len85', $loop_regex_byhand_len85);
     $loop_regex_pcre_len152 = function ($count) {
         $result = 0;
         $instance = new RegEx();
         for ($iter = 0; $iter < $count; $iter++) {
             $result += $instance->regexPCRELen152();
         }
         return $result;
     };
     TimeHHOperations::timeop('regex_pcre_len152', $loop_regex_pcre_len152);
     $loop_regex_posix_len152 = function ($count) {
         $result = 0;
         $instance = new RegEx();
         for ($iter = 0; $iter < $count; $iter++) {
             $result += $instance->regexPOSIXLen152();
         }
         return $result;
     };
     TimeHHOperations::timeop('regex_posix_len152', $loop_regex_posix_len152);
     $loop_regex_byhand_len152 = function ($count) {
         $result = 0;
         $instance = new RegEx();
         for ($iter = 0; $iter < $count; $iter++) {
             $result += $instance->regexByHandLen152();
         }
         return $result;
     };
     TimeHHOperations::timeop('regex_byhand_len152', $loop_regex_byhand_len152);
 }
Example #3
0
 /**
  * @covers Phossa\RegEx\RegEx::balancedString
  */
 public function testBalancedString()
 {
     var_dump(RegEx::balancedString('${', '}', RegExOption::OPTION_DEFAULT));
     // pattern
     $regex = RegEx::balancedString('{{', '}}');
     $pattern = Utility::toPattern($regex);
     // test 1
     $str1 = '{{x{y}} {z}} {{a {{bc}}';
     $this->assertEquals(2, preg_match_all($pattern, $str1, $m));
     $this->assertEquals('{{x{y}}', $m[0][0]);
     $this->assertEquals('{{bc}}', $m[0][1]);
     // quoted substring
     $str2 = '{{x "}}" y}} {{a}} {{ \'{{\' b}}';
     $this->assertEquals(3, preg_match_all($pattern, $str2, $m));
     $this->assertEquals('{{x "}}" y}}', $m[0][0]);
     $this->assertEquals('{{ \'{{\' b}}', $m[0][2]);
     // regex, { followed by char (not space)
     $regex2 = RegEx::balancedString('{\\S', '\\S}', RegExOption::OPTION_ALLOPTS_REG);
     $pattern2 = Utility::toPattern($regex2);
     $str3 = '{bing} { x } {* wow *}';
     $this->assertEquals(2, preg_match_all($pattern2, $str3, $m));
     $this->assertEquals('{bing}', $m[0][0]);
     $this->assertEquals('{* wow *}', $m[0][1]);
 }