元清/extract

此包已被弃用且不再维护。未建议替代包。

PHP中从字符串中提取数据的小工具。

v0.1.0 2014-07-19 08:21 UTC

This package is not auto-updated.

Last update: 2020-01-20 03:37:41 UTC


README

正则表达式提取字符串数据的小工具

use yuanqing\Extract\Extract;

$e = new Extract('{{ foo.bar }}, {{ foo.baz }}!');
$e->extract('Hello, World!'); #=> ['foo' => ['bar' => 'Hello', 'baz' => 'World']]

Boom.

使用方法

  1. 如果给定的字符串不匹配所需的格式,则返回null

  2. 每个捕获组都包含在双大括号内。在双大括号内,我们有

    1. 捕获组的名称
    2. (可选) 字符长度
    3. (可选) 类型指定符
  3. 捕获组可以是任意的 字符串 (s)

    $e = new Extract('{{ foo: s }}, {{ bar: s }}!');
    $e->extract('Hello, World!'); #=> ['foo' => 'Hello', 'bar' => 'World']
    $e->extract('Hola, World!'); #=> ['foo' => 'Hola', 'bar' => 'World']
    
    $e = new Extract('{{ foo: 5s }}, {{ bar: 5s }}!');
    $e->extract('Hello, World!'); #=> ['foo' => 'Hello', 'bar' => 'World']
    $e->extract('Hola, World!'); #=> null
  4. ...或者一个 整数 (d)

    $e = new Extract('{{ day: d }}-{{ month: d }}-{{ year: d }}');
    $e->extract('31-12-2014'); #=> ['day' => 31, 'month' => 12, 'year' => 2014]
    $e->extract('31-12-14'); #=> ['day' => 31, 'month' => 12, 'year' => 14]
    $e->extract('31-Dec-2014'); #=> null
    
    $e = new Extract('{{ day: 2d }}-{{ month: 2d }}-{{ year: 4d }}');
    $e->extract('31-12-2014'); #=> ['day' => 31, 'month' => 12, 'year' => 2014]
    $e->extract('31-12-14'); #=> null
  5. ...或者一个 浮点数 (f)

    $e = new Extract('{{ tau: f }}, {{ pi: f }}');
    $e->extract('6.28, 3.14'); #=> ['tau' => 6.28, 'pi' => 3.14]
    $e->extract('tau, pi'); #=> null
    
    $e = new Extract('{{ tau: 1.f }}, {{ pi: 1.f }}');
    $e->extract('6.28, 3.14'); #=> ['tau' => 6.28, 'pi' => 3.14]
    $e->extract('06.28, 03.14'); #=> null
    
    $e = new Extract('{{ tau: .2f }}, {{ pi: .2f }}');
    $e->extract('6.28, 3.14'); #=> ['tau' => 6.28, 'pi' => 3.14]
    $e->extract('6.283, 3.142'); #=> null
    
    $e = new Extract('{{ tau: 1.2f }}, {{ pi: 1.2f }}');
    $e->extract('6.28, 3.14'); #=> ['tau' => 6.28, 'pi' => 3.14]
    $e->extract('6.3, 3.1'); #=> null

本README中的所有示例都在examples.php文件中。您还可以在测试中找到更多使用示例。

要求

Extract.php需要至少 PHP 5.3HHVM

安装

使用Composer安装

  1. 安装Composer

  2. 安装Extract.php Composer包

    $ composer require yuanqing/extract ~0.1
    
  3. 在您的PHP中,需要Composer自动加载器

    require_once __DIR__ . '/vendor/autoload.php';

手动安装

  1. 克隆此仓库

    $ git clone https://github.com/yuanqing/extract
    

    或者只需获取zip文件

  2. 在您的PHP中,需要Extract.php

    require_once __DIR__ . '/src/Extract.php';

测试

您需要PHPUnit来运行测试

$ git clone https://github.com/yuanqing/extract
$ cd extract
$ phpunit

许可证

MIT许可证