① Create automaton
Enter a FSM below and the application will convert and show the equivalent regular expression. Alternately, enter a regular expression and the application will convert and show the equivalent FSM.
Enter a FSM into the input field below or click Generate random DFA/NFA/eNFA to have the app generate a simple FSM randomly for you. Next, click Create automaton to display the FSM's transition graph.
A valid FSM definition contains a list of states, symbols and transitions, the initial state and the accepting states. States and symbols are alphanumeric character strings and can not overlap. Transitions have the format:
$ character is used to represent the empty string symbol (epsilon) but should not be listed in the alphabet. Generate a FSM to see a valid example.
Enter a regular expression into the input field below or click Generate random regex to have the app generate a simple regex randomly for you. Next, click Create automaton to create a FSM for the defined regex and display its transition graph.
A valid regex consists of alphanumeric characters representing the set of input symbols (e.g.
$ character representing the empty string, the choice operator
+, the Kleene operator
*, and parentheses
). An example of a valid regex is:
② Transition graph
The FSM being converted is displayed in the form of a transition graph.
③ What's next?
This is just the beginning! If you like learning about and playing with FSMs and regexes, check out these other Web apps:
- FSM simulator - A Web app that visually simulates the step-by-step execution of finite-state machines.
- Regular Expressions Gym - A Web app that simplifies your regular expressions by detecting and removing sub-expressions that generate the same strings.
- Regexper - A Web app that displays regular expressions as railroad diagrams.
- Grammophone - A Web app for analyzing and transforming context-free grammars, e.g. for generating strings from a grammar and computing SLR/LR/LALR parsing tables.
- Debuggex - A Web app that is a visual regular expression debugger, tester, and helper.
Love the application, hate it, found a bug, or have a feature idea? I'd love to hear about it! Please send your feedback via the noam project issues page on GitHub.