hansott / range-regex
此包已被弃用且不再维护。没有建议的替代包。
从两个数字(最小值和最大值)返回一个与正则表达式兼容的区间。
1.0.0
2016-07-11 08:46 UTC
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
从两个数字(最小值和最大值)返回一个与正则表达式兼容的区间。受jonschlinkert/to-regex-range启发。
为什么需要这个功能?
这是个好问题。你通常会写一些像if ($x > $min && $x < $max) { ... }
这样的代码,对吧?
假设你想自己构建一个类似于glob的函数。
如果你的glob支持类似foo/{1..5}.md
的语法,并且你计划使用正则表达式模式进行匹配,那么这个库可以将1..5
转换为正则表达式。
安装
通过Composer
$ composer require hansott/range-regex
用法
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
变更日志
请参阅CHANGELOG以获取有关最近更改的更多信息。
测试
$ composer test
贡献
请参阅CONTRIBUTING和CONDUCT以获取详细信息。
致谢
许可证
MIT许可证(MIT)。请参阅许可证文件以获取更多信息。