Beefy Boxes and Bandwidth Generously Provided by pair Networks
Problems? Is your data what you think it is?
 
PerlMonks  

Re^2: Eugh, regex :(

by ultranerds (Pilgrim)
on Mar 25, 2009 at 09:36 UTC ( #753069=note: print w/ replies, xml ) Need Help??


in reply to Re: Eugh, regex :(
in thread Eugh, regex :(

Hi,

Thats all the code you should need.

$post_message is just a text string, with the example I gave - and then it runs this:

$post_message =~ s%\Q[URL=\E([\?\%\:\/a-zA-Z0-9_\-\.]+)\Q][img]\E([\?\%\:\/a-zA-Z0-9_\-\.]+)\Q[/img][/URL]\E%gix;

(which is the line thats giving the error)

Maybe its something to do with the regex?

Cheers

Andy


Comment on Re^2: Eugh, regex :(
Download Code
Re^3: Eugh, regex :(
by haoess (Curate) on Mar 25, 2009 at 09:40 UTC
    % cat 753064 $post_message =~ s%\Q[URL=\E([\?\%\:\/a-zA-Z0-9_\-\.]+)\Q][img]\E([\?\ +%\:\/a-zA-Z0-9_\-\.]+)\Q[/img][/URL]\E%gix; % perl -Mdiagnostics 753064 Substitution replacement not terminated at 753064 line 1 (#1) (F) The lexer couldn't find the final delimiter of an s/// or s{}{ +} construct. Remember that bracketing delimiters count nesting leve +l. Missing the leading $ from variable $s may cause this error. Uncaught exception from user code: Substitution replacement not terminated at 753064 line 1. at 753064 line 1

    The error message says it all, if you want to substitute, you should tell perl, whats your substitution is.

    -- Frank

      Oops, just saw that! Changed it, still getting errors :(

      It seems to be from this line still, cos if I comment it out - the rest of the script works fine:

      $post_message =~ s|\Q[img]\E([\?\%\:\/a-zA-Z0-9_\-\.]+)\Q[/img]\E|[img]$1[/img]|sig;
      (the above is just a more basic version of what I'm trying, to see if I can try and track down whats going on)

      Driving me nuts :(

      Cheers

      Andy

        Ah, looks like you've stumbled into a perl parsing trap:

        s||$1[/|

        This code tries to interpolate the @1 array, the index starts with a slash, parsed as the begin of a matching pattern, but missing the closing slash, that's why you get the Search pattern not terminated error. Escaping the [ with a backslash should make all things fine.

        -- Frank

Log In?
Username:
Password:

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

How do I use this? | Other CB clients
Other Users?
Others rifling through the Monastery: (8)
As of 2014-12-20 12:57 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    Is guessing a good strategy for surviving in the IT business?





    Results (95 votes), past polls