hansott / range-regex
Returns a regex-compatible range from two numbers, min and max.
Requires
- php: ~5.5|~7.0
Requires (Dev)
- phpunit/phpunit: ~4.0||~5.0
- scrutinizer/ocular: ~1.1
- squizlabs/php_codesniffer: ~2.3
This package is auto-updated.
Last update: 2022-02-01 12:59:47 UTC
README
Returns a regex-compatible range from two numbers, min and max. Inspired by jonschlinkert/to-regex-range.
Why would I need this?
That's a good question. You normally would write something like if ($x > $min && $x < $max) { ... }
, right?
Say you want to build a glob like function yourself.
If your glob would support syntax like foo/{1..5}.md
and you plan to do the matching using a regex pattern.. Well, this library can convert 1..5
to a regex.
Install
Via Composer
$ composer require hansott/range-regex
Usage
use HansOtt\RangeRegex\FactoryDefault; use HansOtt\RangeRegex\Range; $factory = new FactoryDefault(); $converter = $factory->getConverter(); $range = new Range(1, 3456); $regex = sprintf('/^(%s)$/', $converter->toRegex($range)); // /^([1-9]|[1-9][0-9]|[1-9][0-9]{2}|[1-2][0-9]{3}|3[0-3][0-9]{2}|34[0-4][0-9]|345[0-6])$/ $matchesRegex = (bool) preg_match($regex, 0); // false $matchesRegex = (bool) preg_match($regex, 2014); // true $matchesRegex = (bool) preg_match($regex, 3457); // false
Change log
Please see CHANGELOG for more information what has changed recently.
Testing
$ composer test
Contributing
Please see CONTRIBUTING and CONDUCT for details.
Credits
License
The MIT License (MIT). Please see License File for more information.