rkr/regexp-builder
Composer 安装命令:
composer require rkr/regexp-builder
包简介
A builder for regular expressions
README 文档
README
Human-friendly regular expression authoring
<?php /* ... */ $invalidEndingCharacters = (new RegExpBuilder) ->expectAnyOf('.-') ->once(); $namePattern = (new RegExpBuilder) ->assertNotPrecededBy($invalidEndingCharacters) ->expectAnyOf(['._-+', new AnyLetter, new AnyDigit])->onceOrMore() ->assertNotFollowedBy($invalidEndingCharacters); $domainPattern = (new RegExpBuilder) ->assertNotPrecededBy($invalidEndingCharacters) ->expectAnyOf(['.-', new AnyLetter, new AnyDigit])->onceOrMore() ->assertNotFollowedBy($invalidEndingCharacters); $pattern = (new RegExpBuilder) ->lineStart() ->group($namePattern, 'a')->once() ->expect('@')->once() ->group($domainPattern, 'b')->once() ->lineEnd() ->compile(); echo "{$pattern}\n"; $res = $pattern->test('max.mustermann+github@googlemail.com'); var_dump($res); // true $res = $pattern->getGroups('max.mustermann+github@googlemail.com'); print_r($res);
Output:
/^(?P<a>(?<![\.\-])[\._\-\+\p{L}\d]+?(?![\.\-]))(?:@)(?P<b>(?<![\.\-])[\.\-\p{L}\d]+?(?![\.\-]))$/u
bool(true)
Array
(
[a] => max.mustermann+github
[0] => max.mustermann+github
[b] => googlemail.com
[1] => googlemail.com
)
统计信息
- 总下载量: 9
- 月度下载量: 0
- 日度下载量: 0
- 收藏数: 6
- 点击次数: 0
- 依赖项目数: 0
- 推荐数: 0
其他信息
- 授权协议: MIT
- 更新时间: 2015-05-01