in reply to Regexp with optional group containing backreference
A variant using a regex:
use warnings; use strict; $/ = ''; while (<DATA>) { m|\G[\n\s]*(.*?)<br />[\n\s]*(.*?)(?:<br />[\n\s]*(.*?))?(?:<br />){ +2}[\n\s]*|isg; my $url = $3 || ""; print "Name: $1\nAddr: $2\nURL: $url\n\n"; }
__DATA__ Name<br /> Address<br /> URL<br /><br /> Name2<br /> Address2<br /><br /> Name: Name Addr: Address URL: URL Name: Name2 Addr: Address2 URL:
|
|---|