An NFA-based regex engine with a library and command-line tool.
You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
Go to file
Aadhavan Srinivasan d453815831 Added README 2 months ago
cmd Convert test_str into a rune slice for better unicode compatibility, it also fixed the bug where all unicode characters wouldn't be colored 2 months ago
regex Set 'isLazy' to true in the NFA, if the postfixNode has the flag set 2 months ago
.gitignore Added gitignore 6 months ago
LICENSE Updated license 3 months ago
Makefile Disable all optimizations 2 months ago
README.md Added README 2 months ago
go.mod Updated module name to 'kleingrep' (Let's goo!) 3 months ago
go.sum Print matched content in color 6 months ago

README.md

Kleingrep

Kleingrep is a regular expression engine, providing a library and command-line tool written in Go.

It aims to provide a more featureful engine, compared to the one in Go's standard library, while retaining some semblance of efficiency.

The engine does not use backtracking, relying on the NFA-based method described in Russ Cox's articles. As such, it is immune to catastrophic backtracking.

It also includes features not present in regexp, such as lookarounds and backreferences.

Syntax

The syntax is, for the most part, a superset of Go's regexp. A full overview of the syntax can be found here.

__For more information, see https://pkg.go.dev/gitea.twomorecents.org/Rockingcool/kleingrep/regex.