Hi David, Thanks for ur suggestion.
But I am a new-bie to Perl. Can u give me a example for 'look-ahead' matches. Regards, Mallik. -----Original Message----- From: David le Blanc [mailto:[EMAIL PROTECTED] Sent: Tuesday, October 05, 2004 5:57 PM To: John W. Krahn Cc: Perl Beginners Subject: Re: Reg Exp Your use of (.?)($del)? does not do what you expect. In the case of :-:a:-: you will find (.?) = 'a' and ($del)? matches a delimiter, BUT :-::-: you will find (.?) = ":" and ($del)? matches nothing. Check out 'look-ahead' matches for a way to solve this. On Tue, 05 Oct 2004 04:03:21 -0700, John W. Krahn <[EMAIL PROTECTED]> wrote: > Mallik wrote: > > Dear Friends, > > Hello, > > > I have the below code. > > > > my $a = ":-:m:-:a:-:l:-:i:-:k"; # Here each letter is separated by :-: > > my $del = ':-:'; # Delimeter > > my $b; > > > > while ($a ne $b) > > { > > $a =~ /^$b$del(.?)($del)?/; > > my $c = $1; > > print "$c\n"; > > $b .= $del . $c; > > } > > > > The above code is working fine. But when I change the text in $a like below > > > > $a = ":-:m:-:a:-:l:-::-:k"; # Here I removed the letter l between two '::'s > > > > Now the code is not working properly. > > > > Any help in this is appreciated. > > > > Note: There may be non-alpha numeric chars between ':-:'. > > Perhaps you need to use split and join: > > $a = ':-:m:-:a:-:l:-::-:k'; > > my $del = ':-:'; # Delimeter > > $b = join $del, split $del, $a, -1; > > John > -- > use Perl; > program > fulfillment > > > > -- > To unsubscribe, e-mail: [EMAIL PROTECTED] > For additional commands, e-mail: [EMAIL PROTECTED] > <http://learn.perl.org/> <http://learn.perl.org/first-response> > > -- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED] <http://learn.perl.org/> <http://learn.perl.org/first-response> -- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED] <http://learn.perl.org/> <http://learn.perl.org/first-response>