public static function like($pattern, $string, $caseSensitive = true)
{
if ($pattern == $string) {
return true;
}
// Preg flags
$flags = $caseSensitive ? '' : 'i';
// Escape any regex special characters
$pattern = preg_quote($pattern, '#');
// Unescape * which is our wildcard character and change it to .*
$pattern = str_replace('\\*', '.*', $pattern);
return (bool) preg_match('#^' . $pattern . '$#' . $flags, $string);
}
public function testLike() { isTrue(Str::like('a', 'a')); isTrue(Str::like('test/*', 'test/first/second')); isTrue(Str::like('*/test', 'first/second/test')); isTrue(Str::like('test', 'TEST', false)); isFalse(Str::like('a', ' a')); isFalse(Str::like('first/', 'first/second/test')); isFalse(Str::like('test', 'TEST')); isFalse(Str::like('/', '/something')); }