function InvalidRegexPatternRule::validatePattern
1 call to InvalidRegexPatternRule::validatePattern()
- InvalidRegexPatternRule::processNode in vendor/
composer/ pcre/ src/ PHPStan/ InvalidRegexPatternRule.php
File
-
vendor/
composer/ pcre/ src/ PHPStan/ InvalidRegexPatternRule.php, line 111
Class
- InvalidRegexPatternRule
- Copy of PHPStan's RegularExpressionPatternRule
Namespace
Composer\Pcre\PHPStanCode
private function validatePattern(string $pattern) : ?string {
try {
$msg = null;
$prev = set_error_handler(function (int $severity, string $message, string $file) use (&$msg) : bool {
$msg = preg_replace("#^preg_match(_all)?\\(.*?\\): #", '', $message);
return true;
});
if ($pattern === '') {
return 'Empty string is not a valid regular expression';
}
Preg::match($pattern, '');
if ($msg !== null) {
return $msg;
}
} catch (PcreException $e) {
if ($e->getCode() === PREG_INTERNAL_ERROR && $msg !== null) {
return $msg;
}
return preg_replace('{.*? failed executing ".*": }', '', $e->getMessage());
} finally {
restore_error_handler();
}
return null;
}