pointybeard/reverse-regex

Convert Regular Expressions into text, for testing

1.0.0.3 2022-04-20 04:32 UTC

README

Build Status

Use Regular Expressions to generate strings.

Installation

This library is installed via Composer. To install, use composer require pointybeard/reverse-regex in your application.

Usage

<?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"

See https://github.com/pointybeard-forks/ReverseRegex/tree/master/examples for more examples.

Notes When Writing Regular Expressions

  1. Escape all meta-characters i.e. if you need to escape the character in a regex you will need to escape here.
  2. Not all meta-characters are suppported see list below.
  3. Use \X{####} to specify unicode value use [\X{####}-\X{####}] to specify range.
  4. Unicdoe \p not supported, I could not find a port of UCD to php, maybe in the future support be added.
  5. Quantifiers are applied to left most group, literal or character class.
  6. Beware of the + and * quantifers they apply a possible maxium number of occurances up to PHP_INT_MAX.

Supported Syntax

About

Requirements

  • This library works with PHP 7.2 or above.

Support

If you believe you have found a bug, please report it using the GitHub issue tracker.

Author

License

"ReverseRegex" is released under the MIT License. See LICENCE for details.