该类库是jehna/VerbalExpressions的php版本。
这货的竟然通过链式方法把正则给语义化了。。。我表示很愤慨啊。。。
安装
| 代码如下 | 复制代码 |
|
加入composer.json { |
|
使用
| 代码如下 | 复制代码 |
|
require_once 'vendor/autoload.php'; use MarkWilson\VerbalExpression; use MarkWilson\VerbalExpression\Matcher; // 初始化VerbalExpression实例 $verbalExpression = new VerbalExpression(); // URL地址匹配 $verbalExpression->startOfLine() ->then('http') ->maybe('s') ->then('://') ->maybe('www.') ->anythingBut(' ') ->endOfLine(); // 编译表达式 - 返回: ^(http)(s)?(\:\/\/)(www\.)?([^\ ]*)$ $verbalExpression->compile(); // 执行匹配 preg_match($verbalExpression, 'https://www.111cn.net'); // 返回 1 // 或 $matcher = new Matcher(); $matcher->isMatch($verbalExpression, 'http://www.g*o*o*gle.com'); // 返回 true |
|
嵌套表达式
| 代码如下 | 复制代码 |
|
$innerExpression = new VerbalExpression(); $innerExpression->word(); $outerExpression = new VerbalExpression(); $outerExpression->startOfLine() ->find($innerExpression) ->then($innerExpression) ->endOfLine(); // 返回 ^(\w+)(\w+)$ $outerExpression->compile(); |
|
禁用子模式捕获
默认情况下,子匹配规则可以被获取,并返回匹配的数组。
| 代码如下 | 复制代码 |
|
// 禁用获取子匹配规则 $verbalExpression->disableSubPatternCapture()->word(); // (?:\w+) // 或 $verbalExpression->word(false); // (?:\w+) |
|
这样做只会影响后续增加的表达式;任何已经添加的匹配规则不会受到影响。这里允许禁用和启用组。
| 代码如下 | 复制代码 |
|
|
|
猪笼城寨手游
猪笼城寨游戏是非常好玩的一款模拟经营类型的手游,在这里玩家们
商道高手vivo版本
商道高手vivo版是一款商战题材的模拟经营手游,游戏画面精美
我在大清当皇帝手游
我在大清当皇帝手游是一款以清代为历史的模拟类手游,相信玩家们
解忧小村落最新版2024
解忧小村落游戏是非常好玩的一款休闲放置经营类型的手游,在这里
洋果子店rose2中文版
洋果子店rose2中文版是一款非常好玩的模拟经营手游,精美的