shroophp/pattern

一个简单的模式匹配库。

v1.0.4 2018-12-05 23:39 UTC

This package is auto-updated.

Last update: 2024-09-08 23:05:48 UTC


README

一个简单的模式匹配库。

安装

composer require 'shroophp/pattern ^1.0'

示例用法

默认情况下,模式将使用简单的花括号语法进行解释。花括号内指定的每个键都将等于一个惰性正则表达式分组(即 (.*?))。

<?php

use ShrooPHP\Pattern\Interpreter;

require 'vendor/autoload.php';

$interpreter = new Interpreter;
$pattern = $interpreter->interpret('Hello, {subject}!');

$world = $pattern->match('Hello, world!'); // array('subject' => 'world')
$mismatch = $pattern->match('Goodbye, galaxy!'); // null

除了花括号之外的其他标记可以通过传递给解释器的构造函数来使用。

<?php

use ShrooPHP\Pattern\Interpreter;

require 'vendor/autoload.php';

$interpreter = new Interpreter('(', ')');
$curly = $interpreter->interpret('{greeting}, {subject}!');

$mismatch = $curly->match('Hello, world!'); // null
$exact = $curly->match('{greeting}, {subject}!'); // array()

$round = $interpreter->interpret('(greeting), (subject)!');
$matched = $round->match('Hello, world!'); // array(
                                           //   'greeting' => 'Hello',
                                           //    'subject' => 'world'
                                           // )

默认情况下,可以使用反斜杠(即 \)来转义标记。

<?php

use ShrooPHP\Pattern\Interpreter;

require 'vendor/autoload.php';

$interpreter = new Interpreter;
$pattern = $interpreter->interpret('\{{key\}}');

$matched = $pattern->match('{value}'); // array('key}' => 'value}')