Socialify

Folder ..

Viewing README.md
225 lines (188 loc) • 16.9 KB

  1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
<!--
  Title: Awesome Regex
  Description: A curated list of amazingly awesome regex resources.
  Author: aloisdg
  -->

# Awesome Regex

[![Awesome](https://awesome.re/badge.svg)](https://awesome.re)
[![Main workflow](https://github.com/aloisdg/awesome-regex/workflows/Main%20workflow/badge.svg)](https://github.com/aloisdg/awesome-regex/actions)

## Introduction

A curated collection of awesome Regex libraries, tools, frameworks and software. The goal is to build a categorized community-driven collection of very well-known resources.

Inspired by [awesome-dotnet](https://github.com/quozd/awesome-dotnet), [awesome-ruby](https://github.com/markets/awesome-ruby), [awesome-awesomeness](https://github.com/bayandin/awesome-awesomeness) and the whole `awesome-*` trend on GitHub. Thank you [Reddit](http://www.reddit.com/r/regex), [Hacker News](https://news.ycombinator.com/item?id=9581225) and [Stack Overflow](http://stackoverflow.com/tags/regex/info) for the help.

Sharing, suggestions and contributions are always welcome! Please take a look at the [contribution guidelines and quality standard](https://github.com/aloisdg/awesome-regex/blob/master/CONTRIBUTING.md) first. Thanks to all contributors, you're awesome and wouldn't be possible without you!

## Contents

- [Documentation](#documentation)
- [Prototyping and Testing](#prototyping-and-testing)
- [Generators](#generators)
- [Security](#security)
- [Learning](#learning)
- [Libraries](#libraries)
- [Collections](#collections)
- [Explanation](#explanation)
- [Exercises](#exercises)
- [Articles](#articles)
- [Books](#books)
- [Benchmarks](#benchmarks)
- [Cheat Sheets](#cheat-sheets)

## Documentation

- [Regular Expression Language - Quick Reference](https://msdn.microsoft.com/en-us/library/az24scfc(v=vs.110).aspx) - MSDN documentation about Regex.
- [Regular Expressions](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Regular_Expressions) - MDN chapter about JavaScript regular expressions.
- [Perl Regular Expression Syntax](http://www.boost.org/doc/libs/1_43_0/libs/regex/doc/html/boost_regex/syntax/perl_syntax.html) - Boost documentation.
- [Perl 6](https://docs.perl6.org/language/regexes) - Regexes in Perl 6.
- [PCRE](http://pcre.org/pcre.txt) - Concatenated PCRE man pages.
- [ECMAScript 6](http://2ality.com/2015/07/regexp-es6.html) - New Regexes in ECMAScript 6.
- [regex header in C++](http://www.cplusplus.com/reference/regex/) - `<regex>` in C++
- [class Pattern in Java](https://docs.oracle.com/javase/7/docs/api/java/util/regex/Pattern.html) - Java 7 docs.
- [class Regex in Scala](http://www.scala-lang.org/api/2.12.1/scala/util/matching/Regex.html) - Scala Regex.
- [Python re module](https://pymotw.com/3/re/) - Regular Expressions Python module tutorial.
- [Regular Expressions in Perl](http://perl-begin.org/topics/regular-expressions/) - Introduction and Reference Links.

## Prototyping and Testing

- [Debuggex](https://www.debuggex.com/) - Online visual Regex tester.
- [ExtendsClass](https://extendsclass.com/regex-tester.html) - Online visual Regex tester.
- [Nodexr](https://www.nodexr.net) - Online node-based Regex editor.
- [Regexr](http://regexr.com/) - Website for interactive Regex prototyping with syntax highlighting (by @gskinner).
- [Regex101](https://regex101.com/) - Online Regex tester, debugger with highlighting.
- [Rubular](http://rubular.com/) - Ruby-based regular expression editor and tester.
- [Rex V](http://www.rexv.org/) - AJAX Regular EXpression eValuator.
- [RegViz](http://regviz.org/) - Tool for debugging JavaScript regular expressions in a visual way.
- [Regulex](https://jex.im/regulex) - JavaScript Regular Expression Visualizer.
- [PyRegex](http://www.pyregex.com/) - Online Regex tester to check validity of Regex in the Python language Regex subset.
- [pythex](http://pythex.org/) - Quick way to test your Python regular expressions.
- [Regexper](http://regexper.com/) - Regex visualizer for JavaScript using railroad diagrams.
- [HiFi Regex Tester](http://www.gethifi.com/tools/regex) - Live JavaScript Regular Expression Tester.
- [Regex Hero](http://regexhero.net/tester/) - .NET online Regex tester.
- [Regex Storm](http://regexstorm.net/tester) - .NET Regex tester with highlighting and detailed results output.
- [RegEx to Strings](https://www.wimpyprogrammer.com/regex-to-strings/) - JavaScript library and online tool to generate strings that a regular expression would match.
- [RegexPal](http://www.regexpal.com) - JavaScript + PCRE online tester.
- [RegexTester](http://www.regextester.com) - Regular Expression Tester with highlighting for Javascript and PCRE.
- [Free Formatter](http://www.freeformatter.com/regex-tester.html) - Free online Regex tester.
- [Regex Tester - Golang](https://regex-golang.appspot.com/assets/html/index.html) - A secure regular expression tester. built using Go
- [PHP Live Regex](https://www.phpliveregex.com) - PHP specific regular expression tester with live evaluation and code generation for all PHP's regex functions.

## Generators

- [Txt2Re](https://www.txt2re.com/index_php3.html) - Generate Regular expressions based on a string
- [Regex Generator++](http://regex.inginf.units.it) - Automatic Generation of Text Extraction Patterns from Examples
- [regexgen](https://github.com/devongovett/regexgen) - Generates regular expressions that match a set of strings.
- [RegexGenerator](https://github.com/MaLeLabTs/RegexGenerator) - A tool for generating regular expressions for text extraction (by @MaLeLabTs)
- [Gamon's numberic range generator](http://gamon.webfactional.com/regexnumericrangegenerator/) - Regex Numeric Range Generator, when you need to match an integer range.
- [rgxg](https://rgxg.github.io) - Command line tool to generate Regex
- [Strings to RegEx](https://www.wimpyprogrammer.com/strings-to-regex/) - JavaScript library and online tool to generate a regular expression that matches strings.
- [Regex Guide](https://regex.guide/playground) - Plain Text to Regex Generator.
- [grex](https://github.com/pemistahl/grex) - A command-line tool and library for generating regular expressions from user-provided test cases.
- [AutoRegex](https://www.autoregex.xyz/home) - English <-> Regex from an AI.

## Security

- [SafeRegex](https://github.com/jkutner/saferegex) - A command-line tool for testing regular expressions for [ReDoS](https://owasp.org/www-community/attacks/Regular_expression_Denial_of_Service_-_ReDoS) vulnerabilities.

## Learning

- [Wikipedia][d1] - Entry on regular expressions.
- [Learn Regex The Hard Way][d2] - In-progress book that quickly teaches you regular expressions.
- [Regular Expression Matching Can Be Simple And Fast][d3] - Basic concept of how Regex parsing works.
- [PDF] [A Tao Of Regular Expressions][d4] - What are Regular Expressions.
- [Regular-Expressions.info][d5] - Informative website for learning regular expressions.
- [RexEgg][d6] - A regular expressions tutorial that goes deep into advanced features.
- [Try Regex][d7] - Try Regex is an interactive regular expressions tutorial.
- [Udemy][d8] - A Basic Introduction To Using Regular Expressions In Programming.
- [Codecademy][d9] - How to use of regular expression.
- [Regex golf][d10] - Regex golf with Peter Norvig.
- [Python Regular Expressions][d11] - A good introduction to Python Regular Expressions from Google.
- [/Reg(exp){2}lained/: Demystifying Regular Expressions][d12] - Fluent 2012 talk reviewing and visualizing basic and intermediate Regular Expressions.
- [Regular Expressions - Everything you should know][d13] - PDF Series.
- [The Java Tutorials][d14]
- [Regex Syntax Summary][d15]
- [How Regexes work][d16]
- [Learn Regular Expressions for Beginners][d17]
- [Java Regex Tutorial][d18]
- [Javascript.info - Regular expressions][d19] - Regular expressions section in The Modern JavaScript Tutorial
- [Useful Regexes][d20]
- [Teach Yourself Regular Expressions][d21]
- [Interactive Regex Tutorial][d22] - Learn Regex step by step, from zero to advanced.

[d1]: http://en.wikipedia.org/wiki/Regular_expression
[d2]: http://regex.learncodethehardway.org/book/
[d3]: http://swtch.com/~rsc/regexp/regexp1.html
[d4]: http://linuxreviews.org/beginner/tao_of_regular_expressions/tao_of_regular_expressions.en.print.pdf
[d5]: http://www.regular-expressions.info/
[d6]: http://www.rexegg.com/
[d7]: http://tryregex.com/
[d8]: https://www.udemy.com/learning-regular-expressions/
[d9]: http://www.codecademy.com/courses/javascript-intermediate-en-NJ7Lr/0/1
[d10]: https://www.oreilly.com/learning/regex-golf-with-peter-norvig
[d11]: https://developers.google.com/edu/python/regular-expressions
[d12]: https://www.youtube.com/watch?v=EkluES9Rvak
[d13]: http://neverfear.org/blog/view/Regex_tutorial_for_people_who_should_know_Regex__but_do_not___Part_1
[d14]: https://docs.oracle.com/javase/tutorial/essential/regex/resources.html
[d15]: http://www.greenend.org.uk/rjk/2002/06/regexp.html
[d16]: http://perl.plover.com/Regex/
[d17]: https://hackernoon.com/javascript-learn-regular-expressions-for-beginners-bb6107015d91
[d18]: http://www.vogella.com/tutorials/JavaRegularExpressions/article.html
[d19]: https://javascript.info/regular-expressions
[d20]: https://atrilsolutions.zendesk.com/hc/en-us/articles/205539861-Useful-regular-expressions
[d21]: http://rads.stackoverflow.com/amzn/click/0672325667
[d22]: https://regexlearn.com/

## Libraries

- [Tre](https://laurikari.net/tre/) - Free and portable approximate Regex matching library.
- [Go-Restructure](https://github.com/alexflint/go-restructure) - Match regular expressions into struct fields in Go (by @alexflint). [js](https://github.com/benjamingr/js-restructure) [C#](https://gist.github.com/benjamingr/4de21494b3e76088e5f7)
- [js-regex](https://github.com/wyantb/js-regex) - Chainable API for construting Regexes.
- [VerbalExpressions](https://github.com/VerbalExpressions) - VerbalExpressions is a cross-language library that helps to construct difficult regular expressions.
- [Super Expressive](https://github.com/francisrstokes/super-expressive) - Super Expressive is a JavaScript library that allows you to build regular expressions in natural language.
- [XRegExp](http://xregexp.com) - JavaScript Regex library.
- [RE2](https://github.com/google/re2) - RE2 is a fast, safe, thread-friendly alternative to backtracking regular expression engines like those used in PCRE, Perl, and Python. It is a C++ library.
- [Hyperscan](https://github.com/01org/hyperscan) - High-performance multiple Regex matching library.
- [Edify](https://github.com/luciferreeves/edify) - Python library which includes in-built functions for common patterns as well as a RegexBuilder class to help build regular expressions from scratch using fluent builder pattern.

## Collections

- [RegexLib](http://regexlib.com/) - Regular Expression Library (5000+ indexed expressions).
- [Regexhub](https://projects.lukehaas.me/regexhub/) - Useful Regex Patterns.
- [RGXP.RU](https://rgxp.ru/) - Regular Expression Patterns (+testing)

## Explanation

- [RegexTranslator](https://www.regextranslator.com/) - A web app to decode Regex into plain English. You can edit it and translate back.
- [Explain.pl](http://rick.measham.id.au/paste/explain.pl) - Explain Regular Expressions.

## Exercises

- [HackerRank Regex Challenges](https://www.hackerrank.com/domains/regex/re-introduction) - Regex challenges with varying levels of difficulty.
- [Redoku](http://padolsey.github.io/redoku/) - Little Regex Sudoku/Crossword thing (by @padolsey).
- [Regex Tuesday - Challenges](https://github.com/callumacrae/regex-tuesday) - Challenge list about Regex.
- [Regex Crossword](http://regexcrossword.com) - A crossword puzzle game using regular expressions.
- [RegexOne](http://regexone.com) - Learn regular expressions with simple, interactive examples.
- [Regex Exercises](https://regex.sketchengine.co.uk/) - Regexp exercises.
- [Regular Expression Crossword Puzzle](http://gregable.com/2015/12/regular-expression-crossword-puzzle.html) - A crossword puzzle with a neat web interface.

## Articles

- [5 Techniques to Improve Regex Performance](https://www.loggly.com/blog/five-invaluable-techniques-to-improve-regex-performance/) - Craft your own powerful, yet efficient regex.
- [The Bad, the Better, and the Best](https://www.loggly.com/blog/regexes-the-bad-better-best/) - How a few characters can make a difference in performance.
- [The Greatest Regex Trick Ever](http://www.rexegg.com/regex-best-trick.html) - So you're doubtful at the mention of a "best Regex trick"?
- [Treat regular expressions as code, not magic](http://alexwlchan.net/2016/04/regexes-are-code/) - If you don’t write them carefully, you can end up with an unmaintainable monstrosity.
- [Demystifying The Regular Expression That Checks If A Number Is Prime](https://iluxonchik.github.io/regular-expression-check-if-number-is-prime/) - How a regular expression can check if a number is prime.
- [Regex Tree: a regular expressions processor](https://medium.com/@DmitrySoshnikov/regexp-tree-a-regular-expressions-parser-with-a-simple-ast-format-bcd4d5580df6)
- [The thirty minute regex tutorial](https://www.codeproject.com/Articles/9099/The-Minute-Regex-Tutorial) - Regular Expressions in 30 Minutes.
- [Regular Expression Matching Can Be Simple And Fast](https://swtch.com/~rsc/regexp/regexp1.html)
- [Regular Expressions in a post ES6 World](https://ponyfoo.com/articles/regular-expressions-post-es6)
- [Regular expression (regex) performance: The fundamental guide](https://medium.com/@lennartkoopmann/regular-expression-regex-performance-the-fundamental-guide-3d39e6af33af)
- [The New ‘Absent Operator’ in Ruby’s Regular Expressions](https://medium.com/rubyinside/the-new-absent-operator-in-ruby-s-regular-expressions-7c3ef6cd0b99)
- [Optimizing regexes in Java](http://www.javaworld.com/article/2077757/core-java/optimizing-regular-expressions-in-java.html)
- [Use Regex to Test Password Strength in JavaScript](https://dzone.com/articles/use-regex-test-password)
- [Java 101](http://www.javaworld.com/article/3188545/learn-java/java-101-regular-expressions-in-java-part-1.html) - Regular Expressions in Java.
- [Most Crazy Regexes](https://stackoverflow.com/questions/800813/what-is-the-most-difficult-challenging-regular-expression-you-have-ever-written) - Stack Overflow
- [Regex Humor](http://www.rexegg.com/regex-humor.html) - Regex jokes and cartoons.
- [The true power of regular expressions](https://nikic.github.io/2012/06/15/The-true-power-of-regular-expressions.html)
- [On code, early neural networks, and once discredited AI pioneers](https://whyisthisinteresting.substack.com/p/the-regular-expression-edition) - A short history of regexes

## Books

- [Patterns, Automata, and Regular Expressions](http://infolab.stanford.edu/~ullman/focs/ch10.pdf) - Al Aho and Jeff Ullman (1992) (*chapter 10 of [Foundations of Computer Science](http://infolab.stanford.edu/~ullman/focs.html)*)
- [Beginning Regular Expressions](http://shop.oreilly.com/product/9780764574894.do) - Andrew Watt (2005)
- [Mastering Regular Expressions](http://shop.oreilly.com/product/9780596528126.do) - Jeffrey E.F. Friedl (2006)
- [Regular Expression Pocket Reference](http://shop.oreilly.com/product/9780596514273.do) - Tony Stubblebine (2007)
- [Introducing Regular Expressions](http://shop.oreilly.com/product/0636920012337.do) - Michael Fitzgerald (2012)
- [Regular Expressions Cookbook](http://shop.oreilly.com/product/0636920023630.do) - Jan Goyvaerts & Steven Levithan (2012)
- [Mastering Python Regular Expressions](http://shop.oreilly.com/product/9781783283156.do) - Felix Lopez & Victor Romero (2014)
- [JavaScript Regular Expressions](http://shop.oreilly.com/product/9781783282258.do) - Loiane Groner & Gabriel Manricks (2015)
- [Regex - the complete tutorial](https://www.princeton.edu/~mlovett/reference/Regular-Expressions.pdf)
- [Python re(gex)?](https://github.com/learnbyexample/py_regular_expressions) - Sundeep Agarwal (2020)

## Benchmarks

- [Benchmark of Regex Libraries](http://lh3lh3.users.sourceforge.net/reb.shtml)
- [Java regular expression library benchmarks – 2015](https://www.javaadvent.com/2015/12/java-regular-expression-library-benchmarks-2015.html)
- [Languages Regex Benchmark](https://github.com/mariomka/regex-benchmark) - It's just a simple Regex benchmark of different programming languages.
- [Performance comparison of regular expression engines](http://sljit.sourceforge.net/regex_perf.html)
- [Regex Performance](https://github.com/rust-leipzig/regex-performance) - Performance comparison of regular expression engines.

## Cheat Sheets

- [Regular Expressions Cheat Sheet](https://www.cheatography.com/davechild/cheat-sheets/regular-expressions/)
- [Regex Cheat Sheet](http://www.rexegg.com/regex-quickstart.html)
- [MIT Cheat Sheet](http://web.mit.edu/hackl/www/lab/turkshop/slides/regex-cheatsheet.pdf)
- [Java Cheat Sheet](https://zeroturnaround.com/rebellabs/java-regular-expressions-cheat-sheet/)
- [JavaScript Cheat Sheet](https://www.debuggex.com/cheatsheet/regex/javascript)
- [RegexLearn Cheat Sheet](https://regexlearn.com/cheatsheet)

# Other awesome lists

Other amazingly awesome lists can be found at the [official awesome list](https://github.com/sindresorhus/awesome) and [here](https://github.com/jnv/lists).