http://www.perlmonks.org?node_id=1013996


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

Thanks, not quite sure how to use this in the context of replacing occurrences in a block of text.

Replies are listed 'Best First'.
Re^3: Regex to match non image urls
by userdefinable (Initiate) on Jan 18, 2013 at 09:36 UTC
    Basically this doesn't work:
    $text =~ s~(\[img\]\s*.*?\.(?:jpe?g|png|svg|gif|bmp)\s*\[/img\])~Inval +id~isg;
      You want to use Parse::BBCode, but you could try
      $text =~ s{ \[(\w+)\] # $1 tagname ( .*? ) # $2 stuff \[\/(\w+)\] # $3 tagname }{ TagFudge( $1, $2, $3 ); }gsex; sub TagFudge { my( $open, $content, $close ) = @_; if( $content =~ m{\.(jpe?g|gif|xbm|png|bmp)$} ){ return "Ok"; } else { return "Invalid"; } }
      But you should use Parse::BBCode
        Could't get that to work, it just says everything is invalid.

      "Doesn't work" is not a problem description.

      Are you sure $text is what you think it is? You can try to do a print "\n>$text<\n"; and see if it matches your expectations.

      If $text is what you think it is, then how doesn't it work? What is your input, what is your expected output, what is your actual output? And with "actual output" I also mean warnings and errors. On that topic, is your script running with use strict; use warnings;?

      Right now it's doing the exact opposite of what I want it to!
        Yes, and?