public function testCharRange() { $this->assertEquals('[a-z]', Charset::create()->charRange('a', 'z')); $this->assertEquals('[a-z0-9_\\-\\+]', Regex::create()->chars(Charset::create()->chars('a..z0..9_-+'))); }
private function checkRegex(RegularExpression $regex) { $errors = []; $errorHandler = set_error_handler(function ($errno, $errstr) use(&$errors) { $errors[] = $errstr; }, E_WARNING); if (!$regex instanceof Regex) { $regex = new Regex([$regex]); } $code = @preg_match($regex->getRegex(), ''); set_error_handler($errorHandler); if ($errors) { $msg = 'Regex ' . $regex . ': ' . trim(end(explode(':', $errors[0], 3))); throw new Exception($msg); } return $errors; }