monq.jfa — Java Finite Automata
The Java class library monq.jfa provides fast and flexible
text filtering with regular expressions. In contrast to
java.util.regex, monq.jfa allows a
regular expression to be bound to an action that is
automatically called whenever a match is spotted in an input
stream.
In addition it is possible to combine several tenthousand regex/action pairs into one machinery (called DFA). The DFA filters input to output by looking for matches of all regular expressions in parallel, calling their actions to reformat the text or to incrementally built up a data structure.
The filtering speed is 1.5MB/s on P4 2.6GHz and is mostly unrelated to the number of regex/action pairs.
A general purpose TCP server and associated classes in
monq.net allow the bigger DFAs to be run as servers.
If you need a GPL free version of the software to use in closed source projects, please contact the Text Mining Group at the EBI.
Is this for me?
To quickly see the pros and cons of monq.jfa
compared to other regular expression engines, read the Key
Features section of the tutorial.

