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
简单的正则表达式生成器和验证器。
正则表达式很密集。这使得它们难以阅读,但与它们携带的信息不成比例。它有一个非常简洁的语法,如果你犯了哪怕是最小的错误,它也不会按预期执行。
没关系。编写正则表达式将不再是你最大的恐惧了!
安装
通过 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 协议