From 95530ef92fb1baad9888411a802933df81f528d5 Mon Sep 17 00:00:00 2001 From: Steven Levithan Date: Thu, 24 Oct 2024 11:12:59 +0200 Subject: [PATCH] Add vscode-oniguruma and article on JS regex history --- README.md | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) diff --git a/README.md b/README.md index 35a113c..39d833b 100644 --- a/README.md +++ b/README.md @@ -288,13 +288,10 @@ Many regexes found online are low quality. It's risky to use regexes you don't f *Open source JavaScript libraries for advanced regex use and processing.* -### Alternative regex builders and engines +### Regex builders -- [regex](https://github.com/slevithan/regex) - Regex template tag for readable, high-performance, native JS regexes. +- [regex](https://github.com/slevithan/regex) - A template tag for extended, readable, high-performance JavaScript regexes. - [XRegExp](https://github.com/slevithan/xregexp) \[[*home*](https://xregexp.com/)] - Extended regex syntax, flags, and utils; useful for backcompat. -- [incr-regex-package](https://github.com/nurulc/incr-regex-package) - Partial/incremental matching, used by [react-rxinput](https://github.com/nurulc/react-rxinput) for input validation with a regex mask. -- [node-re2](https://github.com/uhop/node-re2) - Bindings for RE2, a non-backtracking engine. -- [rregex](https://github.com/2fd/rregex) - Bindings for Rust's `regex`, a non-backtracking engine. ### Abstracted regex syntax @@ -302,6 +299,13 @@ Many regexes found online are low quality. It's risky to use regexes you don't f - [Melody](https://github.com/yoav-lavi/melody) \[[*docs*](https://yoav-lavi.github.io/melody/book/)] - A language that compiles to regexes. - Compose with functions: [compose-regexp.js](https://github.com/compose-regexp/compose-regexp.js), [VerbalExpressions](https://github.com/VerbalExpressions/JSVerbalExpressions) (implementations for [many languages](https://verbalexpressions.github.io/)), [magic-regexp](https://github.com/unjs/magic-regexp) \[[*home*](https://regexp.dev/)], [Super Expressive](https://github.com/francisrstokes/super-expressive) \[[*playground*](https://nartc.github.io/ng-super-expressive/)]. +### Alternative regex engines + +- [incr-regex-package](https://github.com/nurulc/incr-regex-package) - Partial/incremental matching, used by [react-rxinput](https://github.com/nurulc/react-rxinput) for input validation with a regex mask. +- [node-re2](https://github.com/uhop/node-re2) - Bindings for RE2. +- [rregex](https://github.com/2fd/rregex) - Bindings for Rust's `regex`. +- [vscode-oniguruma](https://github.com/microsoft/vscode-oniguruma) - Bindings for Oniguruma. + ### Regex processors - AST builders: [regexpp](https://github.com/eslint-community/regexpp) (used by ESLint), [regexp-tree](https://github.com/DmitrySoshnikov/regexp-tree) (includes optimizer, etc.), [regjsparser](https://github.com/jviereck/regjsparser)/[regjsgen](https://github.com/bnjmnt4n/regjsgen). @@ -332,6 +336,7 @@ Many regexes found online are low quality. It's risky to use regexes you don't f See also
+- [*Regexes Got Good: The History And Future Of Regular Expressions In JavaScript*](https://www.smashingmagazine.com/2024/08/history-future-regular-expressions-javascript/) - Backcompat libraries: [regexpu](https://github.com/mathiasbynens/regexpu), [regenerate](https://github.com/mathiasbynens/regenerate) ([Unicode property sets](https://github.com/mathiasbynens/regenerate-unicode-properties)). - Chrome's `l` (`linear`) regex flag, behind a V8 flag \[[*explainer*](https://v8.dev/blog/non-backtracking-regexp)] \[[*how to run*](https://www.chromium.org/developers/how-tos/run-chromium-with-flags/)]. - [Can I use](https://caniuse.com/) - Up-to-date browser support tables for individual features.