rawr/t-regx

The most advanced PHP regexp library. Clean, descriptive wrapper functions enhancing PCRE extension methods.

Maintainers

Details

github.com/T-Regx/T-Regx

Source

Issues

Fund package maintenance!
Danon

v0.9.10 2020-09-22 20:55 UTC

This package is auto-updated.

Last update: 2020-10-28 10:52:38 UTC


README

T-Regx

68747470733a2f2f7472617669732d63692e6f72672f542d526567782f542d526567782e7376673f6272616e63683d6d6173746572 68747470733a2f2f636f766572616c6c732e696f2f7265706f732f6769746875622f542d526567782f542d526567782f62616467652e7376673f6272616e63683d6d6173746572 68747470733a2f2f696d672e736869656c64732e696f2f62616467652f537461626c652d76302e392e31302d627269676874677265656e2e7376673f7374796c653d706f706f7574 68747470733a2f2f696d672e736869656c64732e696f2f62616467652f646570656e64656e636965732d302d627269676874677265656e2e737667

T-Regx | Regular Expressions library

PHP regular expressions brought up to modern standards.

See documentation at t-regx.com.

last commit commit activity Unit tests Repository size FQN PRs Welcome

PHP Version PHP Version PHP Version PHP Version PHP Version

  1. Installation
  2. API
  3. Documentation
  4. T-Regx fiddle - Try online
  5. Overview
  6. Supported PHP versions
  7. Comparison
  8. License

Installation

Installation for PHP 7.1 and later:

composer require rawr/t-regx

API

You, choose the interface:

  • I choose to keep PHP methods (but protected from errors):

    Scroll to see - preg::match_all(), preg::replace_callback(), preg::split()

  • I choose the modern regex API:

    Scroll to see - pattern()->test(), pattern()->match(), pattern()->replace()

Documentation

Full API documentation is available at t-regx.com. List of changes is available in ChangeLog.md.

Try it online, in your browser!

Open T-Regx fiddle and start playing around.

Why T-Regx stands out?

💡 See documentation at t-regx.com

  • No change in API!

    • You can use T-Regx safe features and exception-based error handling, without changing your API.

      Simply swap preg_match() to preg::match(), and your method is safe! Arguments and return types remain the same.

  • Working with the developer

  • Automatic delimiters for your pattern

    Surrounding slashes or tildes (/pattern/ or ~patttern~) are not compulsory.

  • Converting Warnings to Exceptions

    • Warning or errors during preg:: are converted to exceptions.
    • preg_() can never fail, because it throws PregException on warning/error.
    • In some cases, preg_() methods might fail, return false/null and NOT trigger a warning. Separate exception, SuspectedReturnPregException is then thrown by T-Regx.
  • Written with clean API

    • Descriptive interface
    • SRP methods
    • UTF-8 support out-of-the-box
    • No Reflection used, No (...varargs), No (boolean arguments, true), (No flags, 1), [No [nested, [arrays]]]
  • Protects your from fatal errors

    Certain arguments cause fatal errors with preg_() methods. T-Regx will throw a catchable exception, instead of a Fatal Error.

  • Prepared patterns

    Using user data (for example with preg_quote()) isn't always safe with PCRE, as well as just not being that convenient to use. T-Regx provides Pattern::inject() and Pattern::bind() methods, designed specifically for handling potentially unsafe data.

Supported PHP versions

Continuous integration builds are running for:

  • PHP 7.1 (7.1.0, 7.1.12, 7.1.13, 7.1.27)
  • PHP 7.2 (7.2.0, 7.2.15, 7.2.28)
  • PHP 7.3 (7.3.0, 7.3.6, 7.3.15)
  • PHP 7.4 (7.4.0, 7.4.3)
  • PHP 8.0 (nightly)

What's better

Ugly api

or

Pretty api

Sponsors

Andreas Leathley - developing SquirrelPHP

T-Regx is developed thanks to

JetBrains

License

T-Regx is MIT licensed.