http://www.perlmonks.org?node_id=1025540


in reply to Re: Regex Matching Query
in thread Regex Matching Query

Unfortunately, the code in the direct parent (and similar offerings above) does not produce what I understand to be OP's intended result. Execution of the code in Re: Regex Matching Query goes like this:

C:\> 1025454.pl Show name: TEST SHOW S Show rest: 01E01
It's my understanding that all after the final space -- i.e., S01E01 -- is the desired output.

So why is the regex a few degrees off plumb? As written the technical greediness of the death star in the first capture is mitigated by the trailing questionmark... but the second capture looks for a digit as its starting point, relegating the "S" to the first capture.

Consider instead the elevated particularity of:

if(my ($show, $file) = $file =~ /(.*?)\s([A-Z]\d+.*)/) { print "Show name: $show\n"; print "Show rest: $file\n"; }
which outputs:
Show name: TEST SHOW Show rest: S01E01
Regexen entirely capable of biting BOTH an excess and an insufficiency of precision in their crafting.

If you didn't program your executable by toggling in binary, it wasn't really programming!