https://github.com/learnbyexample/learn_js_regexp
Learn JavaScript Regular Expressions step-by-step from beginner to advanced levels with hundreds of examples and exercises.
https://github.com/learnbyexample/learn_js_regexp
ebook exercises javascript learn-by-doing regex
Last synced: 8 months ago
JSON representation
Learn JavaScript Regular Expressions step-by-step from beginner to advanced levels with hundreds of examples and exercises.
- Host: GitHub
- URL: https://github.com/learnbyexample/learn_js_regexp
- Owner: learnbyexample
- License: mit
- Created: 2019-12-04T07:13:55.000Z (about 6 years ago)
- Default Branch: master
- Last Pushed: 2023-10-26T05:12:31.000Z (about 2 years ago)
- Last Synced: 2025-04-09T14:08:42.308Z (9 months ago)
- Topics: ebook, exercises, javascript, learn-by-doing, regex
- Language: JavaScript
- Homepage: https://learnbyexample.github.io/learn_js_regexp/
- Size: 3.6 MB
- Stars: 114
- Watchers: 4
- Forks: 30
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# Understanding JavaScript RegExp
Learn JavaScript Regular Expressions step-by-step from beginner to advanced levels with hundreds of examples and exercises. Visit https://youtu.be/8X-hUel3GxM for a short video about the book.

The book also includes exercises to test your understanding, which are presented together as a single file in this repo — [Exercises.md](./Exercises.md).
For solutions to the exercises, see [Exercise_solutions.md](./Exercise_solutions.md).
See [Version_changes.md](./Version_changes.md) to keep track of changes made to the book.
# E-book
* You can purchase the pdf/epub versions of the book using these links:
* https://learnbyexample.gumroad.com/l/js_regexp
* https://leanpub.com/js_regexp
* You can also get the book as part of these bundles:
* **All books bundle** bundle from https://learnbyexample.gumroad.com/l/all-books
* Includes all my programming books
* **Awesome Regex** bundle from https://learnbyexample.gumroad.com/l/regex or https://leanpub.com/b/regex
* See https://learnbyexample.github.io/books/ for a list of other books
For a preview of the book, see [sample chapters](./sample_chapters/js_regexp_sample.pdf).
The book can also be [viewed as a single markdown file in this repo](./js_regexp.md). See my blogpost on [generating pdfs from markdown using pandoc](https://learnbyexample.github.io/customizing-pandoc/) if you are interested in the ebook creation process.
For the web version of the book, visit https://learnbyexample.github.io/learn_js_regexp/
# Testimonials
>Literally was having a mini-breakdown about not understanding Regex in algorithm solutions the other day and now I'm feeling so much better, so thank YOU! I genuinely feel like I'm developing the skill for spotting when and where to use them after so much practice!
>
> — [feedback on twitter](https://twitter.com/codingwithlucy/status/1450668315635036160)
# Feedback
⚠️ ⚠️ Please DO NOT submit pull requests. Main reason being any modification requires changes in multiple places.
I would highly appreciate it if you'd let me know how you felt about this book. It could be anything from a simple thank you, pointing out a typo, mistakes in code snippets, which aspects of the book worked for you (or didn't!) and so on. Reader feedback is essential and especially so for self-published authors.
You can reach me via:
* Issue Manager: [https://github.com/learnbyexample/learn_js_regexp/issues](https://github.com/learnbyexample/learn_js_regexp/issues)
* E-mail: `echo 'bGVhcm5ieWV4YW1wbGUubmV0QGdtYWlsLmNvbQo=' | base64 --decode`
* Twitter: [https://twitter.com/learn_byexample](https://twitter.com/learn_byexample)
# Table of Contents
1. Preface
2. Why is it needed?
3. RegExp introduction
4. Anchors
5. Alternation and Grouping
6. Escaping metacharacters
7. Dot metacharacter and Quantifiers
8. Interlude: Tools for debugging and visualization
9. Working with matched portions
10. Character class
11. Groupings and backreferences
12. Interlude: Common tasks
13. Lookarounds
14. Unicode
15. Further Reading
# Acknowledgements
* [MDN: Regular Expressions](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Regular_expressions) — documentation and examples
* [/r/learnjavascript/](https://old.reddit.com/r/learnjavascript/) and [/r/regex/](https://old.reddit.com/r/regex/) — helpful forums for beginners and experienced programmers alike
* [stackoverflow](https://stackoverflow.com/) — for getting answers to pertinent questions on JavaScript and regular expressions
* [tex.stackexchange](https://tex.stackexchange.com/) — for help on [pandoc](https://github.com/jgm/pandoc/) and `tex` related questions
* [canva](https://www.canva.com/) — cover image
* [Warning](https://commons.wikimedia.org/wiki/File:Warning_icon.svg) and [Info](https://commons.wikimedia.org/wiki/File:Info_icon_002.svg) icons by [Amada44](https://commons.wikimedia.org/wiki/User:Amada44) under public domain
* [oxipng](https://github.com/shssoichiro/oxipng), [pngquant](https://pngquant.org/) and [svgcleaner](https://github.com/RazrFalcon/svgcleaner) — optimizing images
* [mdBook](https://github.com/rust-lang/mdBook) — for web version of the book
* [mdBook-pagetoc](https://github.com/JorelAli/mdBook-pagetoc) — for adding table of contents for each chapter
* [minify-html](https://github.com/wilsonzlin/minify-html) — for minifying html files
# License
The book is licensed under a [Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International License](https://creativecommons.org/licenses/by-nc-sa/4.0/).
The code snippets are licensed under MIT, see [LICENSE](./LICENSE) file.