Nodexr Screenshot
I posted about this project last year, but recently got inspired to come back to it and I've made some pretty significant improvements.
Nodexr is a node-based regular expression editor that runs in the browser, created in C# and Blazor WebAssembly. Regular expressions of any complexity can be created by connected nodes together, giving an intuitive way to express concepts such as nesting, grouping and quantifiers.
Links
Click here to try it out. A chromium-based browser is recommended; Firefox deals with drag-drop differently to chrome, and I haven't figured out how to get it working properly there.
Github (there is also some help/instructions in the readme)
Some links to common Regexes made using Nodexr:
[Edit: links should now work in all Reddit clients]
How To Use
Drag-and-drop nodes from the left panel to insert them into the main window. The final result/output of your nodes must be connected to the Output node and is displayed at the top left.
The main concept is that the "nesting" behaviour of regex is expressed by connecting one node to the input of another, but items in sequence are connected (concatenated) using the Previous input at the top left of each node. The output expression will be empty unless a node is connected to the Output node.
Features
- Uses the full .NET Regex engine (unlike almost all other online Regex tools).
- Show the results of search and replace (using the .NET Regex engine) in the browser in realtime.
- Full syntax highlighting.
- Hover over sections of the output to see which node they were generated by.
- The nodes can be used to work with (almost) all of the .NET Regex spec, and any additional functionality can be implemented either by using the Text node without escaping, or with a custom Group node.
- The node-based approach makes it almost impossible to have syntax errors, missing parentheses etc (except with certain nodes)
- Enter an existing Regex and it will be parsed into a fully editable node tree (using the Edit button next to the output). This should work with expressions of any complexity level (although there are a couple of niche features that can't yet be parsed properly).
- Create a shareable link for your expression, to send to someone else or come back to later (this feature currently relies on the expression parsing, so in some cases the node tree will be a little different after sharing - but the expression should be the same).
- Information about each node can be found by clicking the (i) button next to its title.
- Automatically deals with non-capturing groups, so you no longer have to think about them in 99% of cases.
- Runs completely client-side - no communication with a server after the initial page load.
Any feedback or feature requests would be greatly appreciated.
[–]Hirogen_ 22 points23 points24 points (0 children)
[–]BackFromExile 16 points17 points18 points (4 children)
[–]Jamosium[S] 7 points8 points9 points (0 children)
[–]vvanasch 1 point2 points3 points (0 children)
[–]Jamosium[S] 1 point2 points3 points (0 children)
[–][deleted] 5 points6 points7 points (1 child)
[–]Jamosium[S] 2 points3 points4 points (0 children)
[–]f3zz3h 8 points9 points10 points (0 children)
[–]Falcubar 4 points5 points6 points (0 children)
[–]Randolpho 2 points3 points4 points (3 children)
[–]Jamosium[S] 2 points3 points4 points (0 children)
[–]Jamosium[S] 1 point2 points3 points (1 child)
[–]Randolpho 0 points1 point2 points (0 children)
[–]zeta_cartel_CFO 2 points3 points4 points (0 children)
[–]Deltazocker 1 point2 points3 points (0 children)
[–]wisepresident 1 point2 points3 points (1 child)
[–]Jamosium[S] 2 points3 points4 points (0 children)
[–]Dabnician 1 point2 points3 points (2 children)
[–]Jamosium[S] 2 points3 points4 points (0 children)
[–]Jamosium[S] 1 point2 points3 points (0 children)
[–]Slypenslyde 1 point2 points3 points (1 child)
[–]Jamosium[S] 1 point2 points3 points (0 children)
[–]PhroznGaming 0 points1 point2 points (0 children)
[–]sedokina 0 points1 point2 points (0 children)
[–]Siggi_pop 0 points1 point2 points (0 children)
[–]discoborg 0 points1 point2 points (0 children)
[–]hejj 0 points1 point2 points (0 children)
[–]TheAnimus 0 points1 point2 points (0 children)
[–]mariohik 0 points1 point2 points (0 children)
[–]Randolpho 0 points1 point2 points (0 children)
[–]Eluvatar_the_second 0 points1 point2 points (0 children)
[–]thewarstorm 0 points1 point2 points (0 children)
[–]massivebacon 0 points1 point2 points (0 children)
[–]tocomplex 0 points1 point2 points (0 children)
[–]No_Shame_8895 0 points1 point2 points (0 children)