develooper Front page | perl.beginners | Postings from May 2007

Re: How to split a large string with repeating delimiters into multiplesubstrings

Thread Previous
From:
Rob Dixon
Date:
May 23, 2007 07:37
Subject:
Re: How to split a large string with repeating delimiters into multiplesubstrings
Message ID:
465451A6.9040705@350.com
Michael Goopta wrote:
> 
> I am new to Perl.
> 
> How can I split the below string and get the multiple
> web-addresses in a list: (i.e. the strings between <upsl-url>
> and </upsl-url>
> 
> <upsl-url>http://view-preprod.admission.net/abc/mactive/_NJMG_0002029003-01/i-1.JPG?t=tr/m:FitPad/w:199/h:124&amp;t=ts/r:199x199</upsl-url><upsl-url>http://view-preprod.admission.net/abc/mactive/_NJMG_0002029003-01/i-1.JPG?t=tr/m:FitPad/w:199/h:124&amp;t=ts/r:199x199</upsl-url>
> </ad-type>
> 
> Any help is appreciated.

Hi Michael

The following code will extract all substrings consisting of of 'http:' and all
following characters that aren't '<'. The two URLs appear to be identical in your
example.

Hope this helps,

Rob


use strict;
use warnings;

my $text = '<upsl-url>http://view-preprod.admission.net/abc/mactive/_NJMG_0002029003-01/i-1.JPG?t=tr/m:FitPad/w:199/h:124&amp;t=ts/r:199x199</upsl-url><upsl-url>http://view-preprod.admission.net/abc/mactive/_NJMG_0002029003-01/i-1.JPG?t=tr/m:FitPad/w:199/h:124&amp;t=ts/r:199x199</upsl-url>';

my @urls = $text =~ /http:[^<]+/g;

print "$_\n" foreach @urls;

**OUTPUT**

http://view-preprod.admission.net/abc/mactive/_NJMG_0002029003-01/i-1.JPG?t=tr/m:FitPad/w:199/h:124&amp;t=ts/r:199x199
http://view-preprod.admission.net/abc/mactive/_NJMG_0002029003-01/i-1.JPG?t=tr/m:FitPad/w:199/h:124&amp;t=ts/r:199x199


Thread Previous


nntp.perl.org: Perl Programming lists via nntp and http.
Comments to Ask Bjørn Hansen at ask@perl.org | Group listing | About