Simple package to convert (my)sql LIKE syntax to regex (preg)
composer require menthol/sql-like-to-regex
use Menthol\SqlLikeToRegex\SqlLikeToRegex;
print (new SqlLikeToRegex)
->setPattern('foo%')
->toRegex();
// => /^foo.*$/i
var_dump((new SqlLikeToRegex)
->setPattern('foo%')
->test('FooBar')
);
// => bool(true)
var_dump((new SqlLikeToRegex)
->setPattern('foo%')
->test('Baz')
);
// => bool(false)
print (new SqlLikeToRegex)
->setPattern('B_o#(F%o##Moo#%')
->setEscape('#')
->setCaseSensitive()
->toRegex();
// => /^B.o\(F.*o#Moo%$/
print (new SqlLikeToRegex)
->setPattern('_b_a_r_')
->setDelimiter('#')
->toRegex();
// => #^.b.a.r.$#i
print (new SqlLikeToRegex)
->setPattern('/.*[baz]{5}^/')
->setDelimiter('<')
->toRegex();
// => <^/\.\*\[baz\]\{5\}\^/$>i
This project is open-sourced software licensed under the MIT license