You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
<content type="html"><p>Having an interactive program that automatically loads questions and checks the solution is wonderful to have while learning a topic. This <a href="https://github.com/learnbyexample/TUI-apps/blob/main/PyRegexExercises">TUI app</a> has beginner to advanced level exercises for Python regular expressions. There are more than 100 exercises covering both the builtin <code>re</code> and third-party <code>regex</code> module.</p>
<h2 id="installation">Installation<a class="zola-anchor" href="#installation" aria-label="Anchor link for: installation">🔗</a></h2>
20
+
<p>This app is available on PyPI as <a href="https://pypi.org/project/regexexercises/">regexexercises</a>. Example installation instructions are shown below, adjust them based on your preferences and OS.</p>
<p>To run the app without having to enter the virtual environment again, add this alias to <code>.bashrc</code> (or equivalent):</p>
31
+
<pre data-lang="bash" style="background-color:#f5f5f5;color:#1f1f1f;" class="language-bash "><code class="language-bash" data-lang="bash"><span style="color:#7f8989;"># you&#39;ll have to change the path
<p>As an alternative, you can install <code>textual</code> (see <a href="https://textual.textualize.io/getting_started/">Textual documentation</a> for more details), clone my <a href="https://github.com/learnbyexample/TUI-apps">TUI-apps</a> repository and run the <code>pyregex_exercises.py</code> file.</p>
35
+
<p>Adjust the terminal dimensions for the widgets to appear properly, for example 84x25 (characters x lines).</p>
36
+
<br>
37
+
<h2 id="brief-guide">Brief Guide<a class="zola-anchor" href="#brief-guide" aria-label="Anchor link for: brief-guide">🔗</a></h2>
38
+
<ul>
39
+
<li>Type your solution in the input box below the question.
40
+
<ul>
41
+
<li>Use <code>ip</code> variable to represent the sample input.</li>
42
+
<li>Any single valid Python expression will be accepted.</li>
43
+
<li>Some basic readline-like shortcuts are supported, for example <strong>Ctrl+u</strong>, <strong>Ctrl+k</strong>, <strong>Ctrl+w</strong>, etc</li>
44
+
</ul>
45
+
</li>
46
+
<li>Press <strong>Enter</strong> to execute the code.
47
+
<ul>
48
+
<li>Output would be displayed below the command box.</li>
49
+
<li>If the output matches the expected results, the solution box will turn <em>green</em> and a reference solution will also be shown.</li>
50
+
<li>Error messages due to exceptions will be displayed in <em>red</em>.</li>
51
+
</ul>
52
+
</li>
53
+
<li>Press <strong>Ctrl+p</strong> and <strong>Ctrl+n</strong> to navigate the questions list.</li>
54
+
<li>Press <strong>Ctrl+r</strong> to toggle between <strong>str</strong> and <strong>repr</strong> — helps to spot characters like tabs, newlines, backspaces, etc.</li>
55
+
<li>Press <strong>Ctrl+b</strong> to toggle between <strong>expected</strong> and <strong>actual</strong> — helps to debug incorrect solutions.</li>
56
+
<li>Press <strong>Ctrl+s</strong> to show the reference solution if you are unable to solve an exercise.</li>
57
+
<li>Press <strong>Ctrl+t</strong> to toggle between light and dark themes.</li>
58
+
<li>Press <strong>Ctrl+q</strong> to quit the app.</li>
59
+
<li>Press <strong>F1</strong> to view a detailed guide within the app itself and press <strong>F2</strong> to get back to the exercises.</li>
60
+
</ul>
61
+
<p>Your progress will be automatically saved and restored. Already answered questions will be skipped.</p>
62
+
<blockquote>
63
+
<p><img src="/images/warning.svg" alt="warning" /> There is no safeguard against the code you are executing. They are treated as if you executed them from a Python program.</p>
64
+
</blockquote>
65
+
<p>See <a href="https://github.com/learnbyexample/TUI-apps/blob/main/PyRegexExercises/app_guide.md">app_guide.md</a> for more detailed instructions.</p>
66
+
<br>
67
+
<h2 id="ebook">Ebook<a class="zola-anchor" href="#ebook" aria-label="Anchor link for: ebook">🔗</a></h2>
68
+
<p>See my <a href="https://github.com/learnbyexample/py_regular_expressions">Understanding Python re(gex)?</a> ebook to learn regular expressions with hundreds of examples and exercises.</p>
69
+
<br>
70
+
<h2 id="feedback">Feedback<a class="zola-anchor" href="#feedback" aria-label="Anchor link for: feedback">🔗</a></h2>
71
+
<p>I'd highly appreciate your feedback. Please file <a href="https://github.com/learnbyexample/TUI-apps/issues">an issue</a> if there are bugs, crashes, etc.</p>
72
+
<p>Hope you find this TUI app useful. Happy learning :)</p>
73
+
</content>
74
+
</entry>
10
75
<entry xml:lang="en">
11
76
<title>Vim tip 23: editing lines filtered by a pattern</title>
12
77
<published>2023-03-14T00:00:00+00:00</published>
@@ -4753,10 +4818,12 @@ Specifying a greater than <code>0</code> start index when using
4753
4818
<entry xml:lang="en">
4754
4819
<title>Improve your Python regex skills with 75 interactive exercises</title>
<content type="html"><p>Still confused about Python regular expressions? Grow your confidence with <a href="https://github.com/learnbyexample/py_regular_expressions">Understanding Python re(gex)?</a> ebook (FREE this month!) and an <a href="https://github.com/learnbyexample/py_regular_expressions/tree/master/interactive_exercises">interactive GUI app</a>.</p>
4824
+
<content type="html"><p><strong>(2023-03-20) Update:</strong> This <a href="https://github.com/learnbyexample/TUI-apps/blob/main/PyRegexExercises">TUI app</a> covers many more exercises compared to the GUI app discussed below.</p>
4825
+
<hr>
4826
+
<p>Still confused about Python regular expressions? Grow your confidence with <a href="https://github.com/learnbyexample/py_regular_expressions">Understanding Python re(gex)?</a> ebook (FREE this month!) and an <a href="https://github.com/learnbyexample/py_regular_expressions/tree/8433b34bd3f03662abac25c754a5ecf871712980/interactive_exercises">interactive GUI app</a>.</p>
4760
4827
<p>Inspired by <a href="https://adventofcode.com/">Advent of Code</a>, I'll also be posting <a href="https://twitter.com/learn_byexample/status/1465998844898918403">3 challenges per day on twitter</a> for 25 days.</p>
<h2 id="free-ebook">Free ebook<a class="zola-anchor" href="#free-ebook" aria-label="Anchor link for: free-ebook">🔗</a></h2>
@@ -4768,7 +4835,7 @@ Specifying a greater than <code>0</code> start index when using
4768
4835
<p>Or, you can use the <a href="https://learnbyexample.github.io/py_regular_expressions/">web version</a> if you prefer reading the book online.</p>
4769
4836
<br>
4770
4837
<h2 id="interactive-gui-app">Interactive GUI app<a class="zola-anchor" href="#interactive-gui-app" aria-label="Anchor link for: interactive-gui-app">🔗</a></h2>
4771
-
<p>Based on the <strong>Understanding Python re(gex)?</strong> book contents as well as the exercises, I made an <a href="https://github.com/learnbyexample/py_regular_expressions/tree/master/interactive_exercises">interactive GUI app</a> with 75 questions on <code>re.search</code>, <code>re.sub</code>, <code>re.split</code> and <code>re.findall</code> that'll test your understanding of anchors, alternation, grouping, escaping metacharacters, dot metacharacter, quantifiers, character class, grouping, lookarounds, flags, etc.</p>
4838
+
<p>Based on the <strong>Understanding Python re(gex)?</strong> book contents as well as the exercises, I made an <a href="https://github.com/learnbyexample/py_regular_expressions/tree/8433b34bd3f03662abac25c754a5ecf871712980/interactive_exercises">interactive GUI app</a> with 75 questions on <code>re.search</code>, <code>re.sub</code>, <code>re.split</code> and <code>re.findall</code> that'll test your understanding of anchors, alternation, grouping, escaping metacharacters, dot metacharacter, quantifiers, character class, grouping, lookarounds, flags, etc.</p>
4772
4839
<p>Here's some screenshots:</p>
4773
4840
<p align="center"><img src="/images/python_exercises/search.png" alt="Python exercise example for re.search" /></p>
4774
4841
<p align="center"><img src="/images/python_exercises/sub.png" alt="Python exercise example for re.sub" /></p>
<!doctype html><htmllang=en><head><metacontent="IE=edge" http-equiv=X-UA-Compatible><metacontent="text/html; charset=utf-8" http-equiv=content-type><metacontent="width=device-width,initial-scale=1.0,maximum-scale=1" name=viewport><title>100+ Interactive Python Regex Exercises</title><linkhref=https://learnbyexample.github.io/atom.xmlrel=alternatetitle=RSStype=application/atom+xml><scriptsrc=https://cdnjs.cloudflare.com/ajax/libs/slideout/1.0.1/slideout.min.js></script><linkhref=https://learnbyexample.github.io/site.cssrel=stylesheet><metacontent="100+ Interactive Python Regex Exercises" property=og:title><metacontent=websiteproperty=og:type><metacontent="Practice Python regular expressions interactively, includes both re and regex modules" property=og:description><metacontent=https://learnbyexample.github.io/interactive-python-regex-exercises/property=og:url><metacontent=https://raw.githubusercontent.com/learnbyexample/TUI-apps/main/PyRegexExercises/pyregex_exercises.pngproperty=og:image><metacontent=1088property=og:image:width><metacontent=641property=og:image:height><metacontent=summary_large_imageproperty=twitter:card><metacontent=@learn_byexampleproperty=twitter:site><linkhref=https://learnbyexample.github.io/favicon.svgrel=icon><linkrel="shortcut icon" href=https://learnbyexample.github.io/favicon.png><body><divclass=container><divclass=mobile-navbarid=mobile-navbar><divclass=mobile-header-logo><aclass=logohref=/>learnbyexample</a></div><divclass="mobile-navbar-icon icon-out"><span></span><span></span><span></span></div></div><navclass="mobile-menu slideout-menu slideout-menu-left" id=mobile-menu><ulclass=mobile-menu-list><liclass=mobile-menu-item><ahref=https://learnbyexample.github.io/books> Books </a><liclass=mobile-menu-item><ahref=https://learnbyexample.github.io/mini> Mini </a><liclass=mobile-menu-item><ahref=https://learnbyexample.github.io/tips> Tips </a><liclass=mobile-menu-item><ahref=https://learnbyexample.github.io/tags> Tags </a><liclass=mobile-menu-item><ahref=https://learnbyexample.github.io/about> About </a></ul></nav><headerid=header><divclass=logo><ahref=https://learnbyexample.github.io>learnbyexample</a></div><navclass=menu><ul><li><ahref=https://learnbyexample.github.io/books> Books </a><li><ahref=https://learnbyexample.github.io/mini> Mini </a><li><ahref=https://learnbyexample.github.io/tips> Tips </a><li><ahref=https://learnbyexample.github.io/tags> Tags </a><li><ahref=https://learnbyexample.github.io/about> About </a></ul></nav></header><main><divclass=contentid=mobile-panel><divclass=post-tocid=post-toc><h2class=post-toc-title>Contents</h2><divclass="post-toc-content always-active"><navid=TableOfContents><ul><li><aclass=toc-linkhref=https://learnbyexample.github.io/interactive-python-regex-exercises/#installation>Installation</a><li><aclass=toc-linkhref=https://learnbyexample.github.io/interactive-python-regex-exercises/#brief-guide>Brief Guide</a><li><aclass=toc-linkhref=https://learnbyexample.github.io/interactive-python-regex-exercises/#ebook>Ebook</a><li><aclass=toc-linkhref=https://learnbyexample.github.io/interactive-python-regex-exercises/#feedback>Feedback</a></ul></nav></div></div><articleclass=post><headerclass=post__header><h1class=post__title><ahref=https://learnbyexample.github.io/interactive-python-regex-exercises/>100+ Interactive Python Regex Exercises</a></h1><divclass=post__meta><spanclass=post__time>2023-03-20</span></div></header><divclass=post-content><p>Having an interactive program that automatically loads questions and checks the solution is wonderful to have while learning a topic. This <ahref=https://github.com/learnbyexample/TUI-apps/blob/main/PyRegexExercises>TUI app</a> has beginner to advanced level exercises for Python regular expressions. There are more than 100 exercises covering both the builtin <code>re</code> and third-party <code>regex</code> module.<palign=center><imgalt="Sample screenshot for Python regex exercises" loading=lazysrc=https://raw.githubusercontent.com/learnbyexample/TUI-apps/main/PyRegexExercises/pyregex_exercises.png></p><spanid=continue-reading></span><br><h2id=installation>Installation<aaria-label="Anchor link for: installation" class=zola-anchorhref=#installation>🔗</a></h2><p>This app is available on PyPI as <ahref=https://pypi.org/project/regexexercises/>regexexercises</a>. Example installation instructions are shown below, adjust them based on your preferences and OS.<preclass=language-bashdata-lang=bashstyle=background-color:#f5f5f5;color:#1f1f1f;><codeclass=language-bashdata-lang=bash><spanstyle=color:#7f8989;># virtual environment
</span></code></pre><p>To run the app without having to enter the virtual environment again, add this alias to <code>.bashrc</code> (or equivalent):<preclass=language-bashdata-lang=bashstyle=background-color:#f5f5f5;color:#1f1f1f;><codeclass=language-bashdata-lang=bash><spanstyle=color:#7f8989;># you'll have to change the path
</span></code></pre><p>As an alternative, you can install <code>textual</code> (see <ahref=https://textual.textualize.io/getting_started/>Textual documentation</a> for more details), clone my <ahref=https://github.com/learnbyexample/TUI-apps>TUI-apps</a> repository and run the <code>pyregex_exercises.py</code> file.<p>Adjust the terminal dimensions for the widgets to appear properly, for example 84x25 (characters x lines).</p><br><h2id=brief-guide>Brief Guide<aaria-label="Anchor link for: brief-guide" class=zola-anchorhref=#brief-guide>🔗</a></h2><ul><li>Type your solution in the input box below the question. <ul><li>Use <code>ip</code> variable to represent the sample input.<li>Any single valid Python expression will be accepted.<li>Some basic readline-like shortcuts are supported, for example <strong>Ctrl+u</strong>, <strong>Ctrl+k</strong>, <strong>Ctrl+w</strong>, etc</ul><li>Press <strong>Enter</strong> to execute the code. <ul><li>Output would be displayed below the command box.<li>If the output matches the expected results, the solution box will turn <em>green</em> and a reference solution will also be shown.<li>Error messages due to exceptions will be displayed in <em>red</em>.</ul><li>Press <strong>Ctrl+p</strong> and <strong>Ctrl+n</strong> to navigate the questions list.<li>Press <strong>Ctrl+r</strong> to toggle between <strong>str</strong> and <strong>repr</strong> — helps to spot characters like tabs, newlines, backspaces, etc.<li>Press <strong>Ctrl+b</strong> to toggle between <strong>expected</strong> and <strong>actual</strong> — helps to debug incorrect solutions.<li>Press <strong>Ctrl+s</strong> to show the reference solution if you are unable to solve an exercise.<li>Press <strong>Ctrl+t</strong> to toggle between light and dark themes.<li>Press <strong>Ctrl+q</strong> to quit the app.<li>Press <strong>F1</strong> to view a detailed guide within the app itself and press <strong>F2</strong> to get back to the exercises.</ul><p>Your progress will be automatically saved and restored. Already answered questions will be skipped.<blockquote><p><imgalt=warningsrc=/images/warning.svg> There is no safeguard against the code you are executing. They are treated as if you executed them from a Python program.</blockquote><p>See <ahref=https://github.com/learnbyexample/TUI-apps/blob/main/PyRegexExercises/app_guide.md>app_guide.md</a> for more detailed instructions.</p><br><h2id=ebook>Ebook<aaria-label="Anchor link for: ebook" class=zola-anchorhref=#ebook>🔗</a></h2><p>See my <ahref=https://github.com/learnbyexample/py_regular_expressions>Understanding Python re(gex)?</a> ebook to learn regular expressions with hundreds of examples and exercises.</p><br><h2id=feedback>Feedback<aaria-label="Anchor link for: feedback" class=zola-anchorhref=#feedback>🔗</a></h2><p>I'd highly appreciate your feedback. Please file <ahref=https://github.com/learnbyexample/TUI-apps/issues>an issue</a> if there are bugs, crashes, etc.<p>Hope you find this TUI app useful. Happy learning :)</div><divclass=post-footer><divclass=post-tags><ahref=https://learnbyexample.github.io/tags/python/>#python</a><ahref=https://learnbyexample.github.io/tags/regular-expressions/>#regular-expressions</a><ahref=https://learnbyexample.github.io/tags/exercises/>#exercises</a></div><hrcolor=#e6e6e6><divclass=post-nav><p><aclass=nexthref=https://learnbyexample.github.io/python-regex-playground/>Python Regular Expressions Playground →</a><br></div><hrcolor=#e6e6e6><p>📰 Use <ahref=https://learnbyexample.github.io/atom.xml>this link</a> for the Atom feed. <br> ✅ Follow me on <ahref=https://twitter.com/learn_byexample>Twitter</a>, <ahref=https://github.com/learnbyexample>GitHub</a> and <ahref=https://www.youtube.com/c/learnbyexample42>Youtube</a> for interesting tech nuggets. <br> 📧 Subscribe to <ahref=https://learnbyexample.gumroad.com/l/learnbyexample-weekly>learnbyexample weekly</a> for programming resources, tips, tools, free ebooks and more (free newsletter, delivered every Friday).<hrcolor=#e6e6e6></div></article></div></main></div><scriptsrc=https://learnbyexample.github.io/even.js></script>
</span></code></pre><p>To run the app without having to enter the virtual environment again, add this alias to <code>.bashrc</code> (or equivalent):<preclass=language-bashdata-lang=bashstyle=background-color:#f5f5f5;color:#1f1f1f;><codeclass=language-bashdata-lang=bash><spanstyle=color:#7f8989;># you'll have to change the path
</span></code></pre><p>As an alternative, you can install <code>textual</code> (see <ahref=https://textual.textualize.io/getting_started/>Textual documentation</a> for more details), clone my <ahref=https://github.com/learnbyexample/TUI-apps>TUI-apps repository</a> and run the <code>pyregex_playground.py</code> file.<p>Adjust the terminal dimensions for the widgets to appear properly, for example 84x25 (characters x lines). Here's another screenshot:<palign=center><imgalt="Sample screenshot from the Interactive Examples screen" loading=lazysrc=https://raw.githubusercontent.com/learnbyexample/TUI-apps/main/PyRegexPlayground/pyregex_examples.png></p><br><h2id=brief-guide>Brief Guide<aaria-label="Anchor link for: brief-guide" class=zola-anchorhref=#brief-guide>🔗</a></h2><p>You can type the search pattern in the <strong>Compile</strong> input box and press the <strong>Enter</strong> key to execute. For example, <code>re.compile(r'\d')</code> to match digit characters. Matching portions will be highlighted in red.<p>The compiled pattern is available via the <code>pat</code> variable and you can use <code>ip</code> to refer to the input string. You can transform or extract data by typing appropriate expression in the <strong>Action</strong> box. For example, <code>pat.sub(r'(\g<0>)', ip)</code> will add parenthesis around the matching portions.<p>You can skip the Compile box and directly use the Action box too. For example, <code>[m.span() for m in re.finditer(r'\d+', ip)]</code> to get the location of all the matching portions.<blockquote><p><imgalt=warningsrc=/images/warning.svg> There is no safeguard against the command you are executing. They are treated as if you typed them from a shell session.</blockquote><p>Press <strong>F1</strong> to view the detailed guide from within the app, <strong>F2</strong> to view a cheatsheet and <strong>F3</strong> for interactive examples.<p>For more detailed instructions, see <ahref=https://github.com/learnbyexample/TUI-apps/blob/main/PyRegexPlayground/app_guide.md>app guide</a>.</p><br><h2id=ebook>Ebook<aaria-label="Anchor link for: ebook" class=zola-anchorhref=#ebook>🔗</a></h2><p>See my <ahref=https://github.com/learnbyexample/py_regular_expressions>Understanding Python re(gex)?</a> ebook to learn regular expressions with hundreds of examples and exercises.</p><br><h2id=feedback>Feedback<aaria-label="Anchor link for: feedback" class=zola-anchorhref=#feedback>🔗</a></h2><p>I'd highly appreciate your feedback. Please file <ahref=https://github.com/learnbyexample/TUI-apps/issues>an issue</a> if there are bugs, crashes, etc.<p>Hope you find this TUI app useful. Happy learning :)</div><divclass=post-footer><divclass=post-tags><ahref=https://learnbyexample.github.io/tags/python/>#python</a><ahref=https://learnbyexample.github.io/tags/regular-expressions/>#regular-expressions</a><ahref=https://learnbyexample.github.io/tags/playground/>#playground</a><ahref=https://learnbyexample.github.io/tags/tui/>#TUI</a><ahref=https://learnbyexample.github.io/tags/textual/>#textual</a></div><hrcolor=#e6e6e6><divclass=post-nav><p><aclass=nexthref=https://learnbyexample.github.io/understanding-python-regex-announcement/>Understanding Python re(gex)? book announcement →</a><br></div><hrcolor=#e6e6e6><p>📰 Use <ahref=https://learnbyexample.github.io/atom.xml>this link</a> for the Atom feed. <br> ✅ Follow me on <ahref=https://twitter.com/learn_byexample>Twitter</a>, <ahref=https://github.com/learnbyexample>GitHub</a> and <ahref=https://www.youtube.com/c/learnbyexample42>Youtube</a> for interesting tech nuggets. <br> 📧 Subscribe to <ahref=https://learnbyexample.gumroad.com/l/learnbyexample-weekly>learnbyexample weekly</a> for programming resources, tips, tools, free ebooks and more (free newsletter, delivered every Friday).<hrcolor=#e6e6e6></div></article></div></main></div><scriptsrc=https://learnbyexample.github.io/even.js></script>
11
+
</span></code></pre><p>As an alternative, you can install <code>textual</code> (see <ahref=https://textual.textualize.io/getting_started/>Textual documentation</a> for more details), clone my <ahref=https://github.com/learnbyexample/TUI-apps>TUI-apps repository</a> and run the <code>pyregex_playground.py</code> file.<p>Adjust the terminal dimensions for the widgets to appear properly, for example 84x25 (characters x lines). Here's another screenshot:<palign=center><imgalt="Sample screenshot from the Interactive Examples screen" loading=lazysrc=https://raw.githubusercontent.com/learnbyexample/TUI-apps/main/PyRegexPlayground/pyregex_examples.png></p><br><h2id=brief-guide>Brief Guide<aaria-label="Anchor link for: brief-guide" class=zola-anchorhref=#brief-guide>🔗</a></h2><p>You can type the search pattern in the <strong>Compile</strong> input box and press the <strong>Enter</strong> key to execute. For example, <code>re.compile(r'\d')</code> to match digit characters. Matching portions will be highlighted in red.<p>The compiled pattern is available via the <code>pat</code> variable and you can use <code>ip</code> to refer to the input string. You can transform or extract data by typing appropriate expression in the <strong>Action</strong> box. For example, <code>pat.sub(r'(\g<0>)', ip)</code> will add parenthesis around the matching portions.<p>You can skip the Compile box and directly use the Action box too. For example, <code>[m.span() for m in re.finditer(r'\d+', ip)]</code> to get the location of all the matching portions.<blockquote><p><imgalt=warningsrc=/images/warning.svg> There is no safeguard against the command you are executing. They are treated as if you typed them from a shell session.</blockquote><p>Press <strong>F1</strong> to view the detailed guide from within the app, <strong>F2</strong> to view a cheatsheet and <strong>F3</strong> for interactive examples.<p>For more detailed instructions, see <ahref=https://github.com/learnbyexample/TUI-apps/blob/main/PyRegexPlayground/app_guide.md>app guide</a>.</p><br><h2id=ebook>Ebook<aaria-label="Anchor link for: ebook" class=zola-anchorhref=#ebook>🔗</a></h2><p>See my <ahref=https://github.com/learnbyexample/py_regular_expressions>Understanding Python re(gex)?</a> ebook to learn regular expressions with hundreds of examples and exercises.</p><br><h2id=feedback>Feedback<aaria-label="Anchor link for: feedback" class=zola-anchorhref=#feedback>🔗</a></h2><p>I'd highly appreciate your feedback. Please file <ahref=https://github.com/learnbyexample/TUI-apps/issues>an issue</a> if there are bugs, crashes, etc.<p>Hope you find this TUI app useful. Happy learning :)</div><divclass=post-footer><divclass=post-tags><ahref=https://learnbyexample.github.io/tags/python/>#python</a><ahref=https://learnbyexample.github.io/tags/regular-expressions/>#regular-expressions</a><ahref=https://learnbyexample.github.io/tags/playground/>#playground</a><ahref=https://learnbyexample.github.io/tags/tui/>#TUI</a><ahref=https://learnbyexample.github.io/tags/textual/>#textual</a></div><hrcolor=#e6e6e6><divclass=post-nav><p><aclass=previoushref=https://learnbyexample.github.io/interactive-python-regex-exercises/>← 100+ Interactive Python Regex Exercises</a><br><p><aclass=nexthref=https://learnbyexample.github.io/understanding-python-regex-announcement/>Understanding Python re(gex)? book announcement →</a><br></div><hrcolor=#e6e6e6><p>📰 Use <ahref=https://learnbyexample.github.io/atom.xml>this link</a> for the Atom feed. <br> ✅ Follow me on <ahref=https://twitter.com/learn_byexample>Twitter</a>, <ahref=https://github.com/learnbyexample>GitHub</a> and <ahref=https://www.youtube.com/c/learnbyexample42>Youtube</a> for interesting tech nuggets. <br> 📧 Subscribe to <ahref=https://learnbyexample.gumroad.com/l/learnbyexample-weekly>learnbyexample weekly</a> for programming resources, tips, tools, free ebooks and more (free newsletter, delivered every Friday).<hrcolor=#e6e6e6></div></article></div></main></div><scriptsrc=https://learnbyexample.github.io/even.js></script>
0 commit comments