hansott/range-regex

此包已被弃用且不再维护。没有建议的替代包。

从两个数字(最小值和最大值)返回一个与正则表达式兼容的区间。

1.0.0 2016-07-11 08:46 UTC

This package is auto-updated.

Last update: 2022-02-01 12:59:47 UTC


README

Latest Version on Packagist Software License Build Status Coverage Status Quality Score Total Downloads

从两个数字(最小值和最大值)返回一个与正则表达式兼容的区间。受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

贡献

请参阅CONTRIBUTINGCONDUCT以获取详细信息。

致谢

许可证

MIT许可证(MIT)。请参阅许可证文件以获取更多信息。