Sick Gaming
[Tut] Python One Line Regex Match - Printable Version

+- Sick Gaming (https://www.sickgaming.net)
+-- Forum: Programming (https://www.sickgaming.net/forum-76.html)
+--- Forum: Python (https://www.sickgaming.net/forum-83.html)
+--- Thread: [Tut] Python One Line Regex Match (/thread-96678.html)



[Tut] Python One Line Regex Match - xSicKxBot - 08-12-2020

Python One Line Regex Match

<div><p class="has-pale-cyan-blue-background-color has-background"><strong>Summary</strong>: To match a <code>pattern</code> in a given <code>text</code> using only a single line of Python code, use the one-liner <code>import re; print(re.findall(pattern, text))</code> that imports the regular expression library re and prints the result of the <code>findall()</code> function to the shell.</p>
<p><strong>Problem</strong>: Given a string and a regular expression pattern. Match the string for the regex pattern—in a single line of Python code!</p>
<p><strong>Example</strong>: Consider the following example that matches the pattern <code>'F.*r'</code> against the string <code>'Learn Python with Finxter'</code>.</p>
<pre class="EnlighterJSRAW" data-enlighter-language="generic" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="">import re
s = 'Learn Python with Finxter'
p = 'F.*r'
# Found Match of p in s: 'Finxter'</pre>
<p>Let’s dive into the different ways of writing this into a single line of Python code!</p>
<p> <iframe height="600px" width="100%" src="https://repl.it/@finxter/BriskAcidicWatch?lite=true" scrolling="no" frameborder="no" allowtransparency="true" allowfullscreen="true" sandbox="allow-forms allow-pointer-lock allow-popups allow-same-origin allow-scripts allow-modals"></iframe> </p>
<p><em><strong>Exercise</strong>: Run the code. What’s the output of each method? Why does the output differ?</em></p>
<p><strong><em>Do you want to master the regex superpower?</em></strong> Check out my new book <em><strong><a href="https://blog.finxter.com/ebook-the-smartest-way-to-learn-python-regex/" title="[eBook] The Smartest Way to Learn Python Regex">The Smartest Way to Learn Regular Expressions in Python</a></strong></em> with the innovative 3-step approach for active learning: (1) study a book chapter, (2) solve a code puzzle, and (3) watch an educational chapter video. </p>
<h2>Method 1: findall()</h2>
<p>The <strong>re.findall(pattern, string, flags=0)</strong> method returns a list of string matches. Read more in <a href="https://blog.finxter.com/python-re-findall/">our blog tutorial</a>.</p>
<pre class="EnlighterJSRAW" data-enlighter-language="generic" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group=""># Method 1: findall()
import re; print(re.findall('F.*r', 'Learn Python with Finxter'))
# ['Finxter']</pre>
<p>There’s no better way of importing the <code><a href="https://blog.finxter.com/python-regex/" title="Python Regex Superpower [Full Tutorial]">re</a></code> library and calling the <code>re.findall()</code> function in a single line of code—you must use the semicolon <code>A;B</code> to separate the statements <code>A</code> and <code>B</code>. </p>
<p>The <code>findall()</code> function finds all occurrences of the pattern in the string. </p>
<h2>Method 2: search()</h2>
<p>The <strong>re.search(pattern, string, flags=0)</strong> method returns a match object of the first match. Read more in <a href="https://blog.finxter.com/python-regex-search/">our blog tutorial</a>.</p>
<pre class="EnlighterJSRAW" data-enlighter-language="generic" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group=""># Method 2: search()
import re; print(re.search('F.*r', 'Learn Python with Finxter'))
# &lt;re.Match object; span=(18, 25), match='Finxter'></pre>
<p>The <code>search()</code> function finds the first match of the pattern in the string and returns a matching object</p>
<h2>Method 3: match()</h2>
<p>The <strong>re.match(pattern, string, flags=0)</strong> method returns a match object if the regex matches at the beginning of the string. Read more in <a href="https://blog.finxter.com/python-regex-match/">our blog tutorial</a>.</p>
<pre class="EnlighterJSRAW" data-enlighter-language="generic" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group=""># Method 3: match()
import re; print(re.match('.*F.*r', 'Learn Python with Finxter'))
# &lt;re.Match object; span=(0, 25), match='Learn Python with Finxter'></pre>
<p>The <code>match()</code> function finds the match of the pattern <em>at the beginning</em> of the string and returns a matching object. In this case, the whole string matches, so the match object encloses the whole string.</p>
<h2>Method 4: fullmatch()</h2>
<p>The <strong>re.fullmatch(pattern, string, flags=0)</strong> method returns a match object if the regex matches the whole string. Read more in <a href="https://blog.finxter.com/python-regex-fullmatch/">our blog tutorial</a>.</p>
<pre class="EnlighterJSRAW" data-enlighter-language="generic" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group=""># Method 4: fullmatch()
import re; print(re.fullmatch('.*F.*r.*', 'Learn Python with Finxter'))
#&lt;re.Match object; span=(0, 25), match='Learn Python with Finxter'></pre>
<p>The <code>fullmatch()</code> function attempts to match the whole string and returns a matching object if successful. In this case, the whole string matches, so the match object encloses the whole string.</p>
<h2>Where to Go From Here?</h2>
<p>Enough theory, let’s get some practice!</p>
<p>To become successful in coding, you need to get out there and solve real problems for real people. That’s how you can become a six-figure earner easily. And that’s how you polish the skills you really need in practice. After all, what’s the use of learning theory that nobody ever needs?</p>
<p><strong>Practice projects is how you sharpen your saw in coding!</strong></p>
<p>Do you want to become a code master by focusing on practical code projects that actually earn you money and solve problems for people?</p>
<p>Then become a Python freelance developer! It’s the best way of approaching the task of improving your Python skills—even if you are a complete beginner.</p>
<p>Join my free webinar <a rel="noreferrer noopener" href="https://blog.finxter.com/webinar-freelancer/" target="_blank">“How to Build Your High-Income Skill Python”</a> and watch how I grew my coding business online and how you can, too—from the comfort of your own home.</p>
<p><a href="https://blog.finxter.com/webinar-freelancer/" target="_blank" rel="noreferrer noopener">Join the free webinar now!</a></p>
</div>


https://www.sickgaming.net/blog/2020/08/12/python-one-line-regex-match/