Note that there are some explanatory texts on larger screens.

plurals
  1. PO
    text
    copied!<p>One way, also according with who says that regexp is not the tool for the job:</p> <p>Content of <code>script.pl</code> (with the regexp inside and explained):</p> <pre><code>use warnings; use strict; while ( &lt;DATA&gt; ) { printf qq[Text matched: %s\t (original string: %s)\n], $1, $&amp; if m/ # At begin of line, '&lt;' character plus optional space. \A &lt; \s* # Literal 'font' word. font # Mandatory space. \s+ # Positive look-ahead for string 'size=5' (?= .* size \s* = \s* 5 (?:\s+|&gt;) ) # Positive look-ahead for string 'face="verdana"' (?= .* face \s* = \s* "verdana" (?:\s+|&gt;) ) # Positive look-ahead for string 'color="red"' (?= .* color \s* = \s* "red" (?:\s+|&gt;) ) # If last three look-ahead succeed, match them. (?:size\s*=\s*5\s*|color\s*=\s*"red"\s*|face\s*=\s*"verdana"\s*){3} # Literal '&gt;' character. &gt; # Text between tags. ([^&gt;]+) # Close tag and match end of string. &lt;\/font&gt; \Z /x; } __DATA__ &lt;font size=5 color="red" face="verdana"&gt;randomtext&lt;/font&gt; &lt;font size=5 face="verdana" color="red"&gt;randomtext&lt;/font&gt; &lt;font color="red" size=5 face="verdana"&gt;randomtext&lt;/font&gt; &lt;font color="red" face="verdana" size=5&gt;randomtext&lt;/font&gt; &lt;font face="verdana" size=5 color="red"&gt;randomtext&lt;/font&gt; &lt;font face="verdana" color="red" size=5&gt;randomtext&lt;/font&gt; &lt;font size=5 size=5 size=5&gt;randomtext&lt;/font&gt; &lt;font face="verdana" color="red" size=5 foobar="random"&gt;randomtext&lt;/font&gt; &lt;font face="verdana" color="red" size=5 foobar="random=pippo"&gt;randomtext&lt;/font&gt; &lt;font face="verdana" color="red" size=5 garbagetext&gt;randomtext&lt;/font&gt; </code></pre> <p>Run it like:</p> <pre><code>perl script.pl </code></pre> <p>With following result:</p> <pre><code>Text matched: randomtext (original string: &lt;font size=5 color="red" face="verdana"&gt;randomtext&lt;/font&gt;) Text matched: randomtext (original string: &lt;font size=5 face="verdana" color="red"&gt;randomtext&lt;/font&gt;) Text matched: randomtext (original string: &lt;font color="red" size=5 face="verdana"&gt;randomtext&lt;/font&gt;) Text matched: randomtext (original string: &lt;font color="red" face="verdana" size=5&gt;randomtext&lt;/font&gt;) Text matched: randomtext (original string: &lt;font face="verdana" size=5 color="red"&gt;randomtext&lt;/font&gt;) Text matched: randomtext (original string: &lt;font face="verdana" color="red" size=5&gt;randomtext&lt;/font&gt;) </code></pre>
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload