ocaml-re
agda-regexp-automata
ocaml-re | agda-regexp-automata | |
---|---|---|
2 | 1 | |
229 | 15 | |
2.6% | - | |
8.6 | 10.0 | |
4 days ago | almost 4 years ago | |
OCaml | Agda | |
GNU General Public License v3.0 or later | - |
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
ocaml-re
-
Show HN: Regex Derivatives (Brzozowski Derivatives)
Note that it's not difficult to (lazily or not) build a NFA using derivatives as well (with Antimirov's construction).
[1]: https://github.com/ocaml/ocaml-re/
-
Super-expressive – Write regex in natural language
I'm familiar with standard (compact) regex syntax, but I've been using the above syntax recently in a couple small places. I'm a bit on the fence as to which is "better". The compact syntax is, of course, more compact. I think it's a very similar comparison between APL (which I've not used) and most other common programming languages.
One advantage of the expanded syntax is that it's a bit nicer to incorporate a string variable, e.g. "str some_string" vs. "/#{Regexp.escape(some_string)}/" (to borrow Ruby's syntax).
[1] https://github.com/ocaml/ocaml-re
agda-regexp-automata
-
Show HN: Regex Derivatives (Brzozowski Derivatives)
And here the formalized proof in less than 150 lines of code (in Agda) for Brzozowski Derivatives for regex matching (and additional regular languages theorems): https://github.com/desi-ivanov/agda-regexp-automata
What are some alternatives?
google-drive-ocamlfuse - FUSE filesystem over Google Drive
re1-rust - A port of re1, Russ Cox’s simple, virtual machine–based regular expression engine
recross-coq - Regexp engine in Coq for solving regexp crosswords
regex - An implementation of regular expressions for Rust. This implementation uses finite automata and guarantees linear time matching on all inputs.
mcilroy-regex - Doug McIlroy's C++ regular expression matching library
super-expressive - 🦜 Super Expressive is a zero-dependency JavaScript library for building regular expressions in (almost) natural language
regexp-Brzozowski - Coq formalization of decision procedures for regular expression equivalence [maintainer=@anton-trunov]
redgrep - ♥ Janusz Brzozowski
brzozowski - Brzozowski derivative python sketch