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!
|