pointybeard/reverse-regex

将正则表达式转换为文本,用于测试

1.0.0.3 2022-04-20 04:32 UTC

README

Build Status

使用正则表达式生成字符串。

安装

此库通过 Composer 安装。要安装,请使用 composer require pointybeard/reverse-regex 在您的应用程序中。

使用方法

<?php

declare(strict_types=1);

use ReverseRegex\Lexer;
use ReverseRegex\Random\SimpleRandom;
use ReverseRegex\Parser;
use ReverseRegex\Generator\Scope;

require "vendor/autoload.php";

$pattern = "[a-z0-9]{10}"; // 10 random letters and numbers

$lexer = new Lexer($pattern);
$random = new SimpleRandom();
$parser = new Parser($lexer, new Scope(), new Scope());
$generator = $parser->parse()->getResult();

$result = '';

$parser = new Parser($lexer,new Scope(),new Scope());

var_dump($generator->generate($result, $random));
// string(10) "j2ydisgoks"

有关更多示例,请参阅 https://github.com/pointybeard-forks/ReverseRegex/tree/master/examples

编写正则表达式时的注意事项

  1. 转义所有元字符,即如果您需要转义正则表达式中的字符,您需要在此处转义。
  2. 并非所有元字符都受支持,请参阅以下列表。
  3. 使用 \X{####} 指定 Unicode 值,使用 [\X{####}-\X{####}] 指定范围。
  4. 不支持 Unicode \p,我没有找到将 UCD 移植到 PHP 的端口,也许将来会添加支持。
  5. 量词应用于最左边的分组,字面量或字符类。
  6. 注意 +* 量词,它们可能的最大出现次数为 PHP_INT_MAX

支持的语法

关于

需求

  • 此库与 PHP 7.2 或更高版本兼容。

支持

如果您认为您发现了错误,请使用 GitHub 问题跟踪器 报告。

作者

许可证

"ReverseRegex" 根据 MIT 许可证发布。有关详细信息,请参阅 LICENCE