Non-String Regular Expressions
NSRE (Non-String Regular Expressions) is a new spin at regular expressions.
It's really abstract, even compared to regular expressions as you know them,
but it's also pretty powerful for some uses.
Here's the twist: what if regular expressions could, instead of matching just
character strings, match any sequence of anything?
from nsre import *
re = RegExp.from_ast(seq('hello, ') + (seq('foo') | seq('bar')))
assert re.match('hello, foo')
The main goal here is matching NLU grammars when there is several possible
interpretations of a single word, however there is a lot of other things that
you could do. You just need to understand what NSRE is and apply it to
something.
Note — This is inspired by
this article from Russ Cox,
which explains how Thompson NFA work, except that I needed to add some
features and then the implementation is much less elegant because I actually
don't know what I'm doing. But it seems to be working.
Documentation
✨ Documentation is there ✨
Licence
This library is provided under the terms of the WTFPL.
If you find it useful, you can have a look at the
contributors page to
know who helped.