darshphpdev/easyregex

简单的正则表达式生成器和验证器

v1.0.0 2020-11-01 15:33 UTC

This package is auto-updated.

Last update: 2024-09-29 05:56:02 UTC


README

Issues Stars Downloads License

简单的正则表达式生成器和验证器。

正则表达式很密集。这使得它们难以阅读,但与它们携带的信息不成比例。它有一个非常简洁的语法,如果你犯了哪怕是最小的错误,它也不会按预期执行。

没关系。编写正则表达式将不再是你最大的恐惧了!

安装

通过 Composer 安装该包。

composer require darshphpdev/easyregex

配置

可选:服务提供程序将自动注册。或者,你可以手动将服务提供程序添加到你的 config/app.php 文件中的 providers 数组中

'providers' => [
    // ...
    DarshPhpDev\EasyRegex\\EasyRegexServiceProvider::class,
];

如何使用

快速使用

// In your controller
// Use The Helper class RegexBuilder to build and validate regex
use RegexBuilder;

$regex = RegexBuilder::make()->startsWith()->literally('abc')
					->anyLetterOf('A', 'B', 'C')
					->zeroOrMore()
			    		->where(function ($query) {
					        $query->digit()->smallLetter();
					    })->toRegexString();
// the above example will return the regex string /^abc[ABC]*([0-9][a-z])/

// you can also match your string against the generated regex
$regexObject = RegexBuilder::make()->startsWith()->literally('abc')
					->anyLetterOf('A', 'B', 'C')
					->zeroOrMore()
			    		->where(function ($query) {
					        $query->digit()->smallLetter();
					    });
$isMatching = $regexObject->match('abcAAA5g');		// $isMatching = true
$isMatching = $regexObject->match('abdd5g');		// $isMatching = false

// you can also specify the wrapping symbol as an argument to the make() function
// default is '/'
$regex = RegexBuilder::make('#')->literally('a')
				->letterPatternOf('ABC')
				->zeroOrMore()
	    			->toRegexString();
// the above example will return the regex string #a(ABC)*#

// you can also use the global helper regexBuilder()
$regex = regexBuilder()->make()->digit()
			->capitalLetters('A', 'F')
			->onceOrMore()
			->toRegexString();			    		
// the above example will return the regex string /[0-9][A-F]+/
// FOR FULL USAGE, SEE BELOW..

用法

辅助正则表达式函数表

使用以下函数来构建你的正则表达式字符串。

示例

更多示例!

$regex = RegexBuilder::make()->literally('Regex')->toRegexString();
// $regex = /Regex/
$regex = RegexBuilder::make()->anyLetterOf('a', 'b', 'c')->toRegexString();
// $regex = /[abc]/
$regex = RegexBuilder::make()->exceptLetterOf('c')->toRegexString();
// $regex = /[^c]/
$regex = RegexBuilder::make()->letterPatternOf('july')->toRegexString();
// $regex = /(july)/
$regex = RegexBuilder::make()->digit()->anyChar()->toRegexString();
// $regex = /[0-9]./
$regex = RegexBuilder::make()->anyChar()->atMost(5)->toRegexString();
// $regex = /.{5}/
$regex = RegexBuilder::make()->exceptSmallLetters('u', 'z')->toRegexString();
// $regex = /[^u-z]/
$regex = RegexBuilder::make()->capitalLetters('A', 'F')->toRegexString();
// $regex = /[A-F]/
$regex = RegexBuilder::make()->rawRegex('a(ABC)*')->match('aABCABCABC');
// $regex = true
$regex = RegexBuilder::make()->rawRegex('a(ABC)*')->match('aABCABCA');
// $regex = false

// and so on..

任何建议或改进都非常欢迎。

致谢

许可证

EasyRegex 包是开源软件,许可协议为 MIT 协议