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


in reply to How can I extract part of a string after a specific character

#!/usr/bin/perl -w use strict; my $string = "TITLE=SPECIAL CASE 1"; $string =~ /.*=(.*)/; print $1;

. stands for any character but a newline
* for zero or more times
() stores the result in $1.
Type "perldoc perlfaq6" for more details ...

hth
weini

Replies are listed 'Best First'.
Re: How can I extract part of a string after a specific character
by Abigail-II (Bishop) on Jul 11, 2002 at 09:57 UTC
    Both you and DamnDirtyApe have a .* preceeding the =. Why?
    print $string =~ /=(.*)/
    will do fine.

    Abigail

      will do fine.

      But not the same. Their versions grab everything after the last =, your version grabs evertyhing after the first one.
      I think your solution is better (and I'm sure it's a lot more efficient), but we can't know for sure without more information.

      $\ = "\n"; for ('title=foo' ,'title=foo=bar') { print "-> $_"; print /.*=(.*)/; print /=(.*)/; }

      - Yes, I reinvent wheels.
      - Spam: Visit eurotraQ.
      

        Their versions grab everything after the last =, your version grabs evertyhing after the first one.
        Eh, no. Only *one* of their versions grabs everything after the last, the other grabs everything after the first. The problem however didn't specify what should happen if there are multiple = characters present.

        Abigail