Skip to content

Viorel/RegExpress

Repository files navigation

RegExpress

A tester for researching Regular Expression engines. Made in Visual Studio 2026 using C#, C++, WPF, .NET 9.

It includes the following Regular Expression engines:


Sample:

Screenshot of RegExpress

Enter the pattern and text to textboxes. The results are updated automatically. The found matches are colourised.

Use the Options area to select and configure the Regular Expression engine. Press the “➕” button to open more tabs.

Currently the regular expressions are saved and loaded automatically, and a single instance can be started.

The program can be built using Visual Studio 2026 or Visual Studio 2022 and .NET 9. The following Visual Studio workloads are required:

  • .NET desktop development.
  • Desktop development with C++.

Open the RegExpressWPFNET.slnx solution. Right-click the RegExpressWPFNET project in Solution Explorer and select “Set as Startup Project”. Select “Rebuild Solution” from BUILD menu. Then the program can be started.

The sources are written in C# and C++. The minimal sources of third-party regular expression libraries are included.

Details

  • Principal GIT branch: main.
  • Solution file: RegExpressWPFNET.slnx.
  • Startup project: RegExpressWPFNET.
  • Configurations: “Debug, Any CPU” or “Release, Any CPU”. The C++ projects use “x64”.
  • Operating Systems: Windows 11, Windows 10.

Some of engines require certain third-party library files, which were downloaded or compiled separately and included into main branch. (No additional installations required).

Note

After loading the solution file in Visual Studio, make sure that the RegExpressWPFNET project is set as Startup Project.

Note

To avoid compilation errors after acquiring new releases, use the “Rebuild Solution” command.


Feature Matrix

The various functionalities of regular expression engines are presented in the Excel file.

Feature Matrix

Download and open the file:

Example of several essential indicators:

  • Engines that support named groups ((?<name>...) or (?P<name>...)):

    • Regex (.NET, .NET Framework)
    • wregex (SRELL)
    • RE2
    • PCRE2
    • Boost.Regex
    • Oniguruma
    • JavaScript
    • Hyperscan
    • Chimera
    • ICU
    • Rust: regex, fancy_regex, regress
    • Java: regex, re2j
    • Python: re, regex
    • D
    • Perl
    • TRegEx
    • Qt
    • CTRE
  • Engines that support variable-length positive and negative lookbehinds ((?<=... and (?<!...))

    • Regex (.NET, .NET Framework)
    • wregex (SRELL)
    • Oniguruma
    • JavaScript
    • Rust: regress
    • Java: regex
    • Python: regex
    • D
  • Engines that are protected against “catastrophic backtracking” or timeout errors
    (pattern: (a*)*b, text: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaac):

    • RE2
    • PCRE2
    • Oniguruma
    • JavaScript: Bun
    • Hyperscan
    • Chimera
    • Rust: regex, fancy_regex
    • Python: regex
    • D
    • Perl
    • Fortran: Forgex
    • TRE
    • tiny-regex-c
    • wregex (GCC with polynomial option set, without back-references)
    • TRegEx
    • Qt
    • CTRE
  • Engines that support fuzzy or approximate matching:

    • Hyperscan
    • Python: regex
    • TRE


Footnotes

  1. The Bun engine requires a modern 64-bit processor.

  2. The CTRE engine is available in selected environments only.

About

A multi-engine tester for Regular Expressions.

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Contributors 2

  •  
  •