├── .github └── workflows │ └── workflow.yml ├── .markdownlint.yml ├── CONTRIBUTING.md ├── License └── README.md /.github/workflows/workflow.yml: -------------------------------------------------------------------------------- 1 | name: Main workflow 2 | 3 | on: 4 | push: 5 | branches: "**" 6 | tags: "**" 7 | pull_request: 8 | 9 | jobs: 10 | markdownlint: 11 | name: MarkdownLint 12 | runs-on: ubuntu-latest 13 | steps: 14 | - name: Check out code 15 | uses: actions/checkout@v2 16 | 17 | - name: Lint README 18 | uses: avto-dev/markdown-lint@v1.3.0 19 | with: 20 | args: "README.md" 21 | -------------------------------------------------------------------------------- /.markdownlint.yml: -------------------------------------------------------------------------------- 1 | default: true 2 | "line-length": false 3 | -------------------------------------------------------------------------------- /CONTRIBUTING.md: -------------------------------------------------------------------------------- 1 | # Contribution Guidelines 2 | 3 | Please ensure your pull request adheres to the following guidelines: 4 | 5 | * Make an individual pull request for each suggestion 6 | * Use the following format for commit message: `Add FeatureName` 7 | * List, after your addition, should be alphabetically 8 | * Use the following format: \[NAME\]\(LINK\) - DESCRIPTION 9 | * The link should be the name of the project 10 | * Keep descriptions concise and clear (_Keep It Simple, Stupid_) 11 | * New categories, or improvements to the existing ones are also welcome 12 | -------------------------------------------------------------------------------- /License: -------------------------------------------------------------------------------- 1 | CC0 1.0 Universal 2 | 3 | Statement of Purpose 4 | 5 | The laws of most jurisdictions throughout the world automatically confer 6 | exclusive Copyright and Related Rights (defined below) upon the creator and 7 | subsequent owner(s) (each and all, an "owner") of an original work of 8 | authorship and/or a database (each, a "Work"). 9 | 10 | Certain owners wish to permanently relinquish those rights to a Work for the 11 | purpose of contributing to a commons of creative, cultural and scientific 12 | works ("Commons") that the public can reliably and without fear of later 13 | claims of infringement build upon, modify, incorporate in other works, reuse 14 | and redistribute as freely as possible in any form whatsoever and for any 15 | purposes, including without limitation commercial purposes. These owners may 16 | contribute to the Commons to promote the ideal of a free culture and the 17 | further production of creative, cultural and scientific works, or to gain 18 | reputation or greater distribution for their Work in part through the use and 19 | efforts of others. 20 | 21 | For these and/or other purposes and motivations, and without any expectation 22 | of additional consideration or compensation, the person associating CC0 with a 23 | Work (the "Affirmer"), to the extent that he or she is an owner of Copyright 24 | and Related Rights in the Work, voluntarily elects to apply CC0 to the Work 25 | and publicly distribute the Work under its terms, with knowledge of his or her 26 | Copyright and Related Rights in the Work and the meaning and intended legal 27 | effect of CC0 on those rights. 28 | 29 | 1. Copyright and Related Rights. A Work made available under CC0 may be 30 | protected by copyright and related or neighboring rights ("Copyright and 31 | Related Rights"). Copyright and Related Rights include, but are not limited 32 | to, the following: 33 | 34 | i. the right to reproduce, adapt, distribute, perform, display, communicate, 35 | and translate a Work; 36 | 37 | ii. moral rights retained by the original author(s) and/or performer(s); 38 | 39 | iii. publicity and privacy rights pertaining to a person's image or likeness 40 | depicted in a Work; 41 | 42 | iv. rights protecting against unfair competition in regards to a Work, 43 | subject to the limitations in paragraph 4(a), below; 44 | 45 | v. rights protecting the extraction, dissemination, use and reuse of data in 46 | a Work; 47 | 48 | vi. database rights (such as those arising under Directive 96/9/EC of the 49 | European Parliament and of the Council of 11 March 1996 on the legal 50 | protection of databases, and under any national implementation thereof, 51 | including any amended or successor version of such directive); and 52 | 53 | vii. other similar, equivalent or corresponding rights throughout the world 54 | based on applicable law or treaty, and any national implementations thereof. 55 | 56 | 2. Waiver. To the greatest extent permitted by, but not in contravention of, 57 | applicable law, Affirmer hereby overtly, fully, permanently, irrevocably and 58 | unconditionally waives, abandons, and surrenders all of Affirmer's Copyright 59 | and Related Rights and associated claims and causes of action, whether now 60 | known or unknown (including existing as well as future claims and causes of 61 | action), in the Work (i) in all territories worldwide, (ii) for the maximum 62 | duration provided by applicable law or treaty (including future time 63 | extensions), (iii) in any current or future medium and for any number of 64 | copies, and (iv) for any purpose whatsoever, including without limitation 65 | commercial, advertising or promotional purposes (the "Waiver"). Affirmer makes 66 | the Waiver for the benefit of each member of the public at large and to the 67 | detriment of Affirmer's heirs and successors, fully intending that such Waiver 68 | shall not be subject to revocation, rescission, cancellation, termination, or 69 | any other legal or equitable action to disrupt the quiet enjoyment of the Work 70 | by the public as contemplated by Affirmer's express Statement of Purpose. 71 | 72 | 3. Public License Fallback. Should any part of the Waiver for any reason be 73 | judged legally invalid or ineffective under applicable law, then the Waiver 74 | shall be preserved to the maximum extent permitted taking into account 75 | Affirmer's express Statement of Purpose. In addition, to the extent the Waiver 76 | is so judged Affirmer hereby grants to each affected person a royalty-free, 77 | non transferable, non sublicensable, non exclusive, irrevocable and 78 | unconditional license to exercise Affirmer's Copyright and Related Rights in 79 | the Work (i) in all territories worldwide, (ii) for the maximum duration 80 | provided by applicable law or treaty (including future time extensions), (iii) 81 | in any current or future medium and for any number of copies, and (iv) for any 82 | purpose whatsoever, including without limitation commercial, advertising or 83 | promotional purposes (the "License"). The License shall be deemed effective as 84 | of the date CC0 was applied by Affirmer to the Work. Should any part of the 85 | License for any reason be judged legally invalid or ineffective under 86 | applicable law, such partial invalidity or ineffectiveness shall not 87 | invalidate the remainder of the License, and in such case Affirmer hereby 88 | affirms that he or she will not (i) exercise any of his or her remaining 89 | Copyright and Related Rights in the Work or (ii) assert any associated claims 90 | and causes of action with respect to the Work, in either case contrary to 91 | Affirmer's express Statement of Purpose. 92 | 93 | 4. Limitations and Disclaimers. 94 | 95 | a. No trademark or patent rights held by Affirmer are waived, abandoned, 96 | surrendered, licensed or otherwise affected by this document. 97 | 98 | b. Affirmer offers the Work as-is and makes no representations or warranties 99 | of any kind concerning the Work, express, implied, statutory or otherwise, 100 | including without limitation warranties of title, merchantability, fitness 101 | for a particular purpose, non infringement, or the absence of latent or 102 | other defects, accuracy, or the present or absence of errors, whether or not 103 | discoverable, all to the greatest extent permissible under applicable law. 104 | 105 | c. Affirmer disclaims responsibility for clearing rights of other persons 106 | that may apply to the Work or any use thereof, including without limitation 107 | any person's Copyright and Related Rights in the Work. Further, Affirmer 108 | disclaims responsibility for obtaining any necessary consents, permissions 109 | or other rights required for any use of the Work. 110 | 111 | d. Affirmer understands and acknowledges that Creative Commons is not a 112 | party to this document and has no duty or obligation with respect to this 113 | CC0 or use of the Work. 114 | 115 | For more information, please see 116 | 117 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | 6 | 7 | # Awesome Regex 8 | 9 | [![Awesome](https://awesome.re/badge.svg)](https://awesome.re) 10 | [![Main workflow](https://github.com/aloisdg/awesome-regex/workflows/Main%20workflow/badge.svg)](https://github.com/aloisdg/awesome-regex/actions) 11 | 12 | ## Introduction 13 | 14 | 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. 15 | 16 | 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. 17 | 18 | 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! 19 | 20 | ## Contents 21 | 22 | - [Documentation](#documentation) 23 | - [Prototyping and Testing](#prototyping-and-testing) 24 | - [Generators](#generators) 25 | - [Security](#security) 26 | - [Learning](#learning) 27 | - [Libraries](#libraries) 28 | - [Collections](#collections) 29 | - [Explanation](#explanation) 30 | - [Exercises](#exercises) 31 | - [Articles](#articles) 32 | - [Books](#books) 33 | - [Benchmarks](#benchmarks) 34 | - [Cheat Sheets](#cheat-sheets) 35 | 36 | ## Documentation 37 | 38 | - [Regular Expression Language - Quick Reference](https://msdn.microsoft.com/en-us/library/az24scfc(v=vs.110).aspx) - MSDN documentation about Regex. 39 | - [Regular Expressions](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Regular_Expressions) - MDN chapter about JavaScript regular expressions. 40 | - [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. 41 | - [Perl 6](https://docs.perl6.org/language/regexes) - Regexes in Perl 6. 42 | - [PCRE](http://pcre.org/pcre.txt) - Concatenated PCRE man pages. 43 | - [ECMAScript 6](http://2ality.com/2015/07/regexp-es6.html) - New Regexes in ECMAScript 6. 44 | - [regex header in C++](http://www.cplusplus.com/reference/regex/) - `` in C++ 45 | - [class Pattern in Java](https://docs.oracle.com/javase/7/docs/api/java/util/regex/Pattern.html) - Java 7 docs. 46 | - [class Regex in Scala](http://www.scala-lang.org/api/2.12.1/scala/util/matching/Regex.html) - Scala Regex. 47 | - [Python re module](https://pymotw.com/3/re/) - Regular Expressions Python module tutorial. 48 | - [Regular Expressions in Perl](http://perl-begin.org/topics/regular-expressions/) - Introduction and Reference Links. 49 | 50 | ## Prototyping and Testing 51 | 52 | - [Debuggex](https://www.debuggex.com/) - Online visual Regex tester. 53 | - [ExtendsClass](https://extendsclass.com/regex-tester.html) - Online visual Regex tester. 54 | - [Nodexr](https://www.nodexr.net) - Online node-based Regex editor. 55 | - [Regexr](http://regexr.com/) - Website for interactive Regex prototyping with syntax highlighting (by @gskinner). 56 | - [Regex101](https://regex101.com/) - Online Regex tester, debugger with highlighting. 57 | - [Rubular](http://rubular.com/) - Ruby-based regular expression editor and tester. 58 | - [Rex V](http://www.rexv.org/) - AJAX Regular EXpression eValuator. 59 | - [RegViz](http://regviz.org/) - Tool for debugging JavaScript regular expressions in a visual way. 60 | - [Regulex](https://jex.im/regulex) - JavaScript Regular Expression Visualizer. 61 | - [PyRegex](http://www.pyregex.com/) - Online Regex tester to check validity of Regex in the Python language Regex subset. 62 | - [pythex](http://pythex.org/) - Quick way to test your Python regular expressions. 63 | - [Regexper](http://regexper.com/) - Regex visualizer for JavaScript using railroad diagrams. 64 | - [HiFi Regex Tester](http://www.gethifi.com/tools/regex) - Live JavaScript Regular Expression Tester. 65 | - [Regex Hero](http://regexhero.net/tester/) - .NET online Regex tester. 66 | - [Regex Storm](http://regexstorm.net/tester) - .NET Regex tester with highlighting and detailed results output. 67 | - [RegEx to Strings](https://www.wimpyprogrammer.com/regex-to-strings/) - JavaScript library and online tool to generate strings that a regular expression would match. 68 | - [RegexPal](http://www.regexpal.com) - JavaScript + PCRE online tester. 69 | - [RegexTester](http://www.regextester.com) - Regular Expression Tester with highlighting for Javascript and PCRE. 70 | - [Free Formatter](http://www.freeformatter.com/regex-tester.html) - Free online Regex tester. 71 | - [Regex Tester - Golang](https://regex-golang.appspot.com/assets/html/index.html) - A secure regular expression tester. built using Go 72 | - [PHP Live Regex](https://www.phpliveregex.com) - PHP specific regular expression tester with live evaluation and code generation for all PHP's regex functions. 73 | 74 | ## Generators 75 | 76 | - [Txt2Re](https://www.txt2re.com/index_php3.html) - Generate Regular expressions based on a string 77 | - [Regex Generator++](http://regex.inginf.units.it) - Automatic Generation of Text Extraction Patterns from Examples 78 | - [regexgen](https://github.com/devongovett/regexgen) - Generates regular expressions that match a set of strings. 79 | - [RegexGenerator](https://github.com/MaLeLabTs/RegexGenerator) - A tool for generating regular expressions for text extraction (by @MaLeLabTs) 80 | - [Gamon's numberic range generator](http://gamon.webfactional.com/regexnumericrangegenerator/) - Regex Numeric Range Generator, when you need to match an integer range. 81 | - [rgxg](https://rgxg.github.io) - Command line tool to generate Regex 82 | - [Strings to RegEx](https://www.wimpyprogrammer.com/strings-to-regex/) - JavaScript library and online tool to generate a regular expression that matches strings. 83 | - [Regex Guide](https://regex.guide/playground) - Plain Text to Regex Generator. 84 | - [grex](https://github.com/pemistahl/grex) - A command-line tool and library for generating regular expressions from user-provided test cases. 85 | - [AutoRegex](https://www.autoregex.xyz/home) - English <-> Regex from an AI. 86 | 87 | ## Security 88 | 89 | - [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. 90 | 91 | ## Learning 92 | 93 | - [Wikipedia][d1] - Entry on regular expressions. 94 | - [Learn Regex The Hard Way][d2] - In-progress book that quickly teaches you regular expressions. 95 | - [Regular Expression Matching Can Be Simple And Fast][d3] - Basic concept of how Regex parsing works. 96 | - [PDF] [A Tao Of Regular Expressions][d4] - What are Regular Expressions. 97 | - [Regular-Expressions.info][d5] - Informative website for learning regular expressions. 98 | - [RexEgg][d6] - A regular expressions tutorial that goes deep into advanced features. 99 | - [Try Regex][d7] - Try Regex is an interactive regular expressions tutorial. 100 | - [Udemy][d8] - A Basic Introduction To Using Regular Expressions In Programming. 101 | - [Codecademy][d9] - How to use of regular expression. 102 | - [Regex golf][d10] - Regex golf with Peter Norvig. 103 | - [Python Regular Expressions][d11] - A good introduction to Python Regular Expressions from Google. 104 | - [/Reg(exp){2}lained/: Demystifying Regular Expressions][d12] - Fluent 2012 talk reviewing and visualizing basic and intermediate Regular Expressions. 105 | - [Regular Expressions - Everything you should know][d13] - PDF Series. 106 | - [The Java Tutorials][d14] 107 | - [Regex Syntax Summary][d15] 108 | - [How Regexes work][d16] 109 | - [Learn Regular Expressions for Beginners][d17] 110 | - [Java Regex Tutorial][d18] 111 | - [Javascript.info - Regular expressions][d19] - Regular expressions section in The Modern JavaScript Tutorial 112 | - [Useful Regexes][d20] 113 | - [Teach Yourself Regular Expressions][d21] 114 | - [Interactive Regex Tutorial][d22] - Learn Regex step by step, from zero to advanced. 115 | 116 | [d1]: http://en.wikipedia.org/wiki/Regular_expression 117 | [d2]: http://regex.learncodethehardway.org/book/ 118 | [d3]: http://swtch.com/~rsc/regexp/regexp1.html 119 | [d4]: http://linuxreviews.org/beginner/tao_of_regular_expressions/tao_of_regular_expressions.en.print.pdf 120 | [d5]: http://www.regular-expressions.info/ 121 | [d6]: http://www.rexegg.com/ 122 | [d7]: http://tryregex.com/ 123 | [d8]: https://www.udemy.com/learning-regular-expressions/ 124 | [d9]: http://www.codecademy.com/courses/javascript-intermediate-en-NJ7Lr/0/1 125 | [d10]: https://www.oreilly.com/learning/regex-golf-with-peter-norvig 126 | [d11]: https://developers.google.com/edu/python/regular-expressions 127 | [d12]: https://www.youtube.com/watch?v=EkluES9Rvak 128 | [d13]: http://neverfear.org/blog/view/Regex_tutorial_for_people_who_should_know_Regex__but_do_not___Part_1 129 | [d14]: https://docs.oracle.com/javase/tutorial/essential/regex/resources.html 130 | [d15]: http://www.greenend.org.uk/rjk/2002/06/regexp.html 131 | [d16]: http://perl.plover.com/Regex/ 132 | [d17]: https://hackernoon.com/javascript-learn-regular-expressions-for-beginners-bb6107015d91 133 | [d18]: http://www.vogella.com/tutorials/JavaRegularExpressions/article.html 134 | [d19]: https://javascript.info/regular-expressions 135 | [d20]: https://atrilsolutions.zendesk.com/hc/en-us/articles/205539861-Useful-regular-expressions 136 | [d21]: http://rads.stackoverflow.com/amzn/click/0672325667 137 | [d22]: https://regexlearn.com/ 138 | 139 | ## Libraries 140 | 141 | - [Tre](https://laurikari.net/tre/) - Free and portable approximate Regex matching library. 142 | - [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) 143 | - [js-regex](https://github.com/wyantb/js-regex) - Chainable API for constructing Regexes. 144 | - [VerbalExpressions](https://github.com/VerbalExpressions) - VerbalExpressions is a cross-language library that helps to construct difficult regular expressions. 145 | - [Super Expressive](https://github.com/francisrstokes/super-expressive) - Super Expressive is a JavaScript library that allows you to build regular expressions in natural language. 146 | - [XRegExp](http://xregexp.com) - JavaScript Regex library. 147 | - [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. 148 | - [Hyperscan](https://github.com/01org/hyperscan) - High-performance multiple Regex matching library. 149 | 150 | ## Collections 151 | 152 | - [RegexLib](http://regexlib.com/) - Regular Expression Library (5000+ indexed expressions). 153 | - [Regexhub](https://projects.lukehaas.me/regexhub/) - Useful Regex Patterns. 154 | - [RGXP.RU](https://rgxp.ru/) - Regular Expression Patterns (+testing) 155 | 156 | ## Explanation 157 | 158 | - [RegexTranslator](https://www.regextranslator.com/) - A web app to decode Regex into plain English. You can edit it and translate back. 159 | - [Explain.pl](http://rick.measham.id.au/paste/explain.pl) - Explain Regular Expressions. 160 | 161 | ## Exercises 162 | 163 | - [HackerRank Regex Challenges](https://www.hackerrank.com/domains/regex/re-introduction) - Regex challenges with varying levels of difficulty. 164 | - [Redoku](http://padolsey.github.io/redoku/) - Little Regex Sudoku/Crossword thing (by @padolsey). 165 | - [Regex Tuesday - Challenges](https://github.com/callumacrae/regex-tuesday) - Challenge list about Regex. 166 | - [Regex Crossword](http://regexcrossword.com) - A crossword puzzle game using regular expressions. 167 | - [RegexOne](http://regexone.com) - Learn regular expressions with simple, interactive examples. 168 | - [Regex Exercises](https://regex.sketchengine.co.uk/) - Regexp exercises. 169 | - [Regular Expression Crossword Puzzle](http://gregable.com/2015/12/regular-expression-crossword-puzzle.html) - A crossword puzzle with a neat web interface. 170 | 171 | ## Articles 172 | 173 | - [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. 174 | - [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. 175 | - [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"? 176 | - [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. 177 | - [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. 178 | - [Regex Tree: a regular expressions processor](https://medium.com/@DmitrySoshnikov/regexp-tree-a-regular-expressions-parser-with-a-simple-ast-format-bcd4d5580df6) 179 | - [The thirty minute regex tutorial](https://www.codeproject.com/Articles/9099/The-Minute-Regex-Tutorial) - Regular Expressions in 30 Minutes. 180 | - [Regular Expression Matching Can Be Simple And Fast](https://swtch.com/~rsc/regexp/regexp1.html) 181 | - [Regular Expressions in a post ES6 World](https://ponyfoo.com/articles/regular-expressions-post-es6) 182 | - [Regular expression (regex) performance: The fundamental guide](https://medium.com/@lennartkoopmann/regular-expression-regex-performance-the-fundamental-guide-3d39e6af33af) 183 | - [The New ‘Absent Operator’ in Ruby’s Regular Expressions](https://medium.com/rubyinside/the-new-absent-operator-in-ruby-s-regular-expressions-7c3ef6cd0b99) 184 | - [Optimizing regexes in Java](http://www.javaworld.com/article/2077757/core-java/optimizing-regular-expressions-in-java.html) 185 | - [Use Regex to Test Password Strength in JavaScript](https://dzone.com/articles/use-regex-test-password) 186 | - [Java 101](http://www.javaworld.com/article/3188545/learn-java/java-101-regular-expressions-in-java-part-1.html) - Regular Expressions in Java. 187 | - [Most Crazy Regexes](https://stackoverflow.com/questions/800813/what-is-the-most-difficult-challenging-regular-expression-you-have-ever-written) - Stack Overflow 188 | - [Regex Humor](http://www.rexegg.com/regex-humor.html) - Regex jokes and cartoons. 189 | - [The true power of regular expressions](https://nikic.github.io/2012/06/15/The-true-power-of-regular-expressions.html) 190 | - [On code, early neural networks, and once discredited AI pioneers](https://whyisthisinteresting.substack.com/p/the-regular-expression-edition) - A short history of regexes 191 | 192 | ## Books 193 | 194 | - [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)*) 195 | - [Beginning Regular Expressions](http://shop.oreilly.com/product/9780764574894.do) - Andrew Watt (2005) 196 | - [Mastering Regular Expressions](http://shop.oreilly.com/product/9780596528126.do) - Jeffrey E.F. Friedl (2006) 197 | - [Regular Expression Pocket Reference](http://shop.oreilly.com/product/9780596514273.do) - Tony Stubblebine (2007) 198 | - [Introducing Regular Expressions](http://shop.oreilly.com/product/0636920012337.do) - Michael Fitzgerald (2012) 199 | - [Regular Expressions Cookbook](http://shop.oreilly.com/product/0636920023630.do) - Jan Goyvaerts & Steven Levithan (2012) 200 | - [Mastering Python Regular Expressions](http://shop.oreilly.com/product/9781783283156.do) - Felix Lopez & Victor Romero (2014) 201 | - [JavaScript Regular Expressions](http://shop.oreilly.com/product/9781783282258.do) - Loiane Groner & Gabriel Manricks (2015) 202 | - [Regex - the complete tutorial](https://www.princeton.edu/~mlovett/reference/Regular-Expressions.pdf) 203 | - [Python re(gex)?](https://github.com/learnbyexample/py_regular_expressions) - Sundeep Agarwal (2020) 204 | 205 | ## Benchmarks 206 | 207 | - [Benchmark of Regex Libraries](http://lh3lh3.users.sourceforge.net/reb.shtml) 208 | - [Java regular expression library benchmarks – 2015](https://www.javaadvent.com/2015/12/java-regular-expression-library-benchmarks-2015.html) 209 | - [Languages Regex Benchmark](https://github.com/mariomka/regex-benchmark) - It's just a simple Regex benchmark of different programming languages. 210 | - [Performance comparison of regular expression engines](http://sljit.sourceforge.net/regex_perf.html) 211 | - [Regex Performance](https://github.com/rust-leipzig/regex-performance) - Performance comparison of regular expression engines. 212 | 213 | ## Cheat Sheets 214 | 215 | - [Regular Expressions Cheat Sheet](https://www.cheatography.com/davechild/cheat-sheets/regular-expressions/) 216 | - [Regex Cheat Sheet](http://www.rexegg.com/regex-quickstart.html) 217 | - [MIT Cheat Sheet](http://web.mit.edu/hackl/www/lab/turkshop/slides/regex-cheatsheet.pdf) 218 | - [Java Cheat Sheet](https://zeroturnaround.com/rebellabs/java-regular-expressions-cheat-sheet/) 219 | - [JavaScript Cheat Sheet](https://www.debuggex.com/cheatsheet/regex/javascript) 220 | - [RegexLearn Cheat Sheet](https://regexlearn.com/cheatsheet) 221 | 222 | # Other awesome lists 223 | 224 | Other amazingly awesome lists can be found at the [official awesome list](https://github.com/sindresorhus/awesome) and [here](https://github.com/jnv/lists). 225 | --------------------------------------------------------------------------------