in reply to Re: regex confusion
in thread regex confusion

well, this is the line previous to the regex:
$instream =~ s/<\/H[1-6]>\s*/\}\n/ig;
and i can't use html parsing modules...i need to chew on the html manually to replace it with the correct coding.

Replies are listed 'Best First'.
Re: regex confusion
by mandog (Curate) on Oct 07, 2001 at 18:39 UTC
    the /x switch allows white space and comments within a regular expression. This lets you break things into little pieces and comment out the pieces until the syntax errors go away.
    use strict; use warnings; use diagnostics; my $instream= 'empty'; $instream =~ s/ <FONT (.+?) COLOR\s?=\s? ('|")? (\#......) \2 (.+?) SIZE \s?=\s? ('|")? ################ (\d++)\5 #d+ not d++ (.+?) FACE \s?=\s? ('|")? (.+?) \8 [^>]*> \s* /genStyleCSF($3,$6,$9) /iegx;
    Also allow me to join the chorus suggesting a HTML parsing module....



    email: mandog

Re: Re: Re: regex confusion
by chipmunk (Parson) on Oct 07, 2001 at 18:20 UTC
    The error you're seeing is a result of perl getting confused about which parts of your code are inside a substitution, and which are outside. Look for a regex, somewhere before line 257, where you're matching a slash, and forgot to escape it with a backslash.

    When you're matching slashes inside a regex, it's helpful to use a different delimiter for the regex, as in m,</html>, or s!</H1>!}\n! . This saves you from having to use all those backslashes.

    But, as wog said, it really would be best to use an HTML parsing module.