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


in reply to trouble with regular expressions

my code s/(\;do.*)(\<\/iframe\>\'\)\;)/sss/; matches only first 4 symbols...

The regex inside your substitution matches the whole string, not "only first 4 symbols", whatever you mean by "symbol".

So, what do you want to do?

Update: The OP silently updated his node, so this reply might or might not be irrelevant now.

Replies are listed 'Best First'.
Re^2: trouble with regular expressions
by programmer.perl (Beadle) on Nov 06, 2012 at 14:51 UTC

    I want to change this whole word to //eof

    my old code matches the ;doc and gives result such as ssscument.write('<iframe ...shortened...</iframe>');

    and thank you for your reply ))

    Enough codes make shapes. (Hamidjon)
      my old code matches the ;doc and gives result such as ssscument.write('<iframe ...shortened...</iframe>');

      No, it does not:

      use 5.010; use strict; use warnings; $_ = q[;document.write('<iframe src="any url" scrolling="auto" framebo +rder="no" align="center" height="15" width="15"></iframe>');]; s/(\;do.*)(\<\/iframe\>\'\)\;)/sss/; say __END__ sss

      Anyway, it's easier if you use a different delimiter so that you don't have to escape the forward slashes:

      s{(\;do.*)(</iframe>'\);)}{//eof};

      sorry, I made a gram. mistake: I want to change this whole string to //eof

      Enough codes make shapes. (Hamidjon)