该类库是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, 'http://www.111com.net'); // 返回 1 // 或 $matcher = new Matcher(); $matcher->isMatch($verbalExpression, 'http://www.google.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+) |
这样做只会影响后续增加的表达式;任何已经添加的匹配规则不会受到影响。这里允许禁用和启用组。
代码如下 | 复制代码 |
|
敢达决战官方正版 安卓版v6.7.9
下载敢达决战 安卓版v6.7.9
下载像素火影骨架佐助 (Perseverance Fire Shadow)手机版v1.16
下载要塞英雄 安卓版v33.20.0-39082670-Android
下载梦想城镇vivo最新版本 安卓版v12.0.1
梦想城镇vivo版是这款卡通风模拟经营类手游的渠道服版本,玩
怦然心动的瞬间 安卓版v1.0
怦然心动的瞬间是一款真人向的恋爱互动游戏,在游戏中玩家将扮演
曼尼汉堡店游戏 安卓版v1.0.3
曼尼汉堡店是一款非常好玩的精品恐怖类型冒险游戏,在这款游戏中
现代总统模拟器去广告版 安卓版v1.0.46
现代总统模拟器是一款休闲养成类游戏,可能对于不少的玩家来说都
现代总统模拟器付费完整版 安卓版v1.0.46
现代总统模拟器高级版在商店是需要付费的,相对于普通版本,高级