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


in reply to Regex To Remove File Extension

that is because you told it to take everything after a dot using a "greedy" match. You want a "non-greedy", using the ? modifier. try: /\..*?$/, alternately you could use /\.[^.]+$/ to remove a dot followed by one or more non-dot characters at the end of the string


-pete
"Worry is like a rocking chair. It gives you something to do, but it doesn't get you anywhere."

Replies are listed 'Best First'.
Re^2: Regex To Remove File Extension
by kennethk (Abbot) on Dec 10, 2008 at 19:07 UTC
    /\..*?$/ won't work because it still matches off the first period - I thought of that one at first, too. The second expression(/\.[^.]+$/) works fine.
      You are of course correct. I should pay more attention when responding to posts. In my defense, I was hard at work on some code and was distracted.


      -pete
      "Worry is like a rocking chair. It gives you something to do, but it doesn't get you anywhere."
        In your defense, my boss wishes I was hard at work on some code and was distracted.