News

Generate Regular Expressions with Grex CLI

Published
Generate Regular Expressions with Grex CLI image

Grex is a command-line tool and library for generating regular expressions from user-provided test cases. Grex is both a library (Rust) and a command-line tool meant to simplify creating regular expressions.

Here's a simple example from the project's readme to help you visualize how it works as a CLI tool for building regexes:

grex -c \
"regexes are awesome" \
"regexes are awful"
^regexes are aw(?:esome|ful)$

While Grex is awesome at creating a valid regex based on input, you can, of course, refine and optimize the regular expression further. Let's say you provide a list of URLs that you want to match via Grex. You might intend to support both HTTP and HTTPS for all domains, but the example provided doesn't include the HTTP version of all domains you want to match:

grex -c \
"https://example.com" \
"https://example.org" \
"http://example.net" \
"https://example.net"
 
^http(?:s://example\.(?:com|net|org)|://example\.net)$

Here's an example of visualizing how the above samples would match against additional output:

Perhaps you could further optimize this pattern using something like the following regex:

https?://example\.(com|org|net)

Understand that while the first example is technically accurate based on the input provided, you might not be providing enough sample data to build the expected regex. This example is just to illustrate how to use Grex works based on the provided input.

Grex is also a library for Rust, check out the readme for details. You can learn more about this CLI tool, get full installation instructions, and view the source code on GitHub.

Paul Redmond photo

Staff writer at Laravel News. Full stack web developer and author.

Filed in

Sponsored

laravelcloud logo
Laravel Cloud

Easily create and manage your servers and deploy your Laravel applications in seconds.

Visit Laravel Cloud

The latest

View all →
Inertia DevTools Now Available for Firefox image

Inertia DevTools Now Available for Firefox

Read article
Laravel Scalpel Scans for Filesystem Intrusion Evidence image

Laravel Scalpel Scans for Filesystem Intrusion Evidence

Read article
Mercure Broadcasting in Laravel 13.32 image

Mercure Broadcasting in Laravel 13.32

Read article
Super Stack: Laravel Starter Kit With Filament and NativePHP image

Super Stack: Laravel Starter Kit With Filament and NativePHP

Read article
Laravel MCP 1.0 Is Released image

Laravel MCP 1.0 Is Released

Read article
Laravel Vet: Review Composer Code Before It Installs image

Laravel Vet: Review Composer Code Before It Installs

Read article