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 8217b67122 Added test for escaped parentheses in lookarounds 3 weeks 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 4 weeks ago
regex Added test for escaped parentheses in lookarounds 3 weeks ago
.gitignore Added gitignore 5 months ago
LICENSE Updated license 1 month ago
Makefile Disable all optimizations 1 month ago
README.md Updated README 3 weeks ago
go.mod Updated module name to 'kleingrep' (Let's goo!) 1 month ago
go.sum Print matched content in color 5 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 regexp, 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.