* Jeremy Mann <[EMAIL PROTECTED]> [2003-12-19T13:47:26]
> Given this in $_
> <p>Most popular title searches:</p><ol><li><a
> HREF="/title/tt0244365/">"Enterprise" (2001)</a></li>"
> 
> why would this regex not put digits in $1 ?
> 
> $data2 =~ /popular title searches:<\/p><ol><li><a
> HREF=\"\/title\/tt(\d*)\/\">/

This code:
        $data2 = '<p>Most popular title searches:</p><ol><li><a 
HREF="/title/tt0244365/">"Enterprise" (2001)</a></li>';

        $data2 =~ /popular title searches:<\/p><ol><li><a 
HREF=\"\/title\/tt(\d*)\/\">/;
        print $1;

prints '0244365'.

Notice that I put the string into $data2, not $_.  A bare regex (/foo/)
would work on $_, but you're using the =~ operator to fit the regex to
$data2, so the value in $_ is irrelevant.  Perhaps you wanted:

        ($data2) = ($_ =~ /r(ege)x/); # assign $1 to $data2

Also, keep in mind that while // is the most common delimiter for a
regex, it can lead to readability problems.  If you're going to have a /
character in your regex, why not a different delimiter for the regex?
It'll save you from escaping the slashes.  So:

        $data2 =~ m!popular title searches:</p>!;

Also, you didn't need to escape the quotes in the regex, you could have:

        $data2 =~ m!<a HREF="/title/tt(\d*)/">!;

I hope these pointers help.

-- 
rjbs

Attachment: pgp00000.pgp
Description: PGP signature

Reply via email to