johannesvollmer / regex-nodes

Visualize and edit regular expressions for use in javascript.
https://johannesvollmer.github.io/regex-nodes/
MIT License
35 stars 6 forks source link
editor graph javascript regex regular-expression

Regex Nodes

This node-based regular expression editor helps you understand and edit regular expressions for use in your Javascript code.

If your regular expressions are complex enough to give this editor relevance, you probably should consider not using regular expressions, haha.

Why Nodes?

One of the problems with regular expressions is that they get quite messy very quickly. Operator precedence is not always obvious and can be misleading. Nodes, on the other hand, are a visual hierarchy. A text-based regex cannot simply be broken into several lines or indented, because that would alter the meaning of the expression.

The other major benefit of nodes is that the editor will prevent you from producing invalid expressions. Other regex editors analyze the possibly incorrect regular expression that the user has come up with. The node editor will allow you to enter your intention and generate a correct regular expression.

In addition, nodes offer various other advantages, such as reusing subexpressions, automatic character escaping, grouping and parameterizing expressions, and automatic optimizations.

Core Features

How to use

See this blog post. It explains how to handle the nodes and what the buttons do.

Build

With elm installed on your system, run elm make src/Main.elm --output=html/built.js. Also, see compiling elm with optimization enabled.

Alternatively, use modd or npm run watch in this directory to compile on every file save.

Roadmap

  1. As I have realized that node groups would not be worth development time right now, the editor should offer common regex patterns as hard-coded nodes. When parsing a regular expression, those patterns should be recognized.
  2. To fully quality as an editor, the parser must support repetition ranges in curly braces and Unicode literals at all costs.
  3. Simply connecting and rearranging properties of set nodes and sequence nodes.

Project Songs (archived here for future nostalgia)

Shoutout

BrowserStack Logo

Thanks to BrowserStack, we can make sure this website runs on any browser, for free. BrowserStack loves Open Source, and Open Source loves BrowserStack.

To Do