/** * 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; }
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); }
/** * @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]); }