http://qs321.pair.com?node_id=729482


in reply to Regex To Remove File Extension

There are a lot of ways to skin this cat:

s/\..*+$//; s/\-[^\.]*$//;

Both of these use $ at the end to anchor the regex to the end of the string. The first uses .*+, the non-greedy version of .*, the second uses the character class of all chars except '.' to only get the last suffix

Another possibility is to use the perl module File::Basename and this is probably the best way, because you don't need to worry about getting it right, someone else did that already

UPDATE: kennethk is right, the first version doesn't work. Obviously the regex engine never matches from right to left even when anchored to the right

UPDATE2: Seems to be not my day. 3 errors in two lines is quite depressing