Beefy Boxes and Bandwidth Generously Provided by pair Networks
Think about Loose Coupling
 
PerlMonks  

Re^2: Regex to match non image urls

by userdefinable (Initiate)
on Jan 18, 2013 at 09:23 UTC ( #1013995=note: print w/ replies, xml ) Need Help??


in reply to Re: Regex to match non image urls
in thread Regex to match non image urls

Thanks but I'm trying to get the instances of this out of a chunk of text though. Like this:

s~m(\[img\]\s*.*?\.(?:jpe?g|png|svg|gif|bmp)\s*\[/img\])x~Invalid~isg;
but it doesn't work, so I'm clearly not using it correctly.


Comment on Re^2: Regex to match non image urls
Download Code
Replies are listed 'Best First'.
Re^3: Regex to match non image urls
by tobyink (Abbot) on Jan 18, 2013 at 12:36 UTC

    Ah, OK. You never said it was part of a s/// operator.

    Maybe something along these lines?

    use 5.010; use strict; use warnings; my $text = do { local $/ = <DATA> }; my ($start, $end) = map quotemeta, qw([img] [/img]); $text =~ s{($start(.+?)$end)}{ my $link = $1; my $uri = $2; $uri =~ /\.(?:jpe?g|png|svg|gif|bmp)$/ ? $link : 'Invalid' }eg; print $text; __DATA__ Foo [img]http://example.com/[/img] Bar [img]http://example.com/logo.jpeg[/img]

    That said, what you are doing is conceptually broken. It is perfectly valid for an image on the web to have a URL ending with ".cgi", ".php", or even ".html". Whether something is an image or not is decided by its HTTP Content-Type header, not by the last few characters of the URL.

    perl -E'sub Monkey::do{say$_,for@_,do{($monkey=[caller(0)]->[3])=~s{::}{ }and$monkey}}"Monkey say"->Monkey::do'
    /p
      That said, what you are doing is conceptually broken. It is perfectly valid for an image on the web to have a URL ending with ".cgi", ".php", or even ".html". Whether something is an image or not is decided by its HTTP Content-Type header, not by the last few characters of the URL.

      I couldn't agree more, sir.

      That being said, I like the elegance of your code snippet.

Log In?
Username:
Password:

What's my password?
Create A New User
Node Status?
node history
Node Type: note [id://1013995]
help
Chatterbox?
and the web crawler heard nothing...

How do I use this? | Other CB clients
Other Users?
Others rifling through the Monastery: (10)
As of 2015-07-08 03:47 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    The top three priorities of my open tasks are (in descending order of likelihood to be worked on) ...









    Results (94 votes), past polls