This page lists state machine libraries.
- The notion of regular expressions used here has exactly the expressiveness of good old regular languages.
- This package supports operations such as complement (the ~ operator) and intersection (the & operator).
- The * operator is mathematically the Kleen Star (i.e. we don't have greedy/reluctant/possessive variants).
- The time for pattern matching is optimal: once the regular expression has been converted into an automaton, it takes linear time in the length of a string to check whether it matches the expression - independently of the complexity of the expression. (NFA-based packages use backtracking.)
- There is no support for capturing groups.
RegExp r = new RegExp("ab(c|d)*"); Automaton a = r.toAutomaton(); String s = "abcccdc"; System.out.println("Match: " + a.run(s)); // prints: true
multiregexp based on automaton
stateless 1) Create state machines and lightweight state machine-based workflows directly in java code.