On Jul 12, Dusan Juhas said:

>I typed this simple cmd in the bash:
>echo 123 |perl -pe 's/(\d)(\d)/$1.$2/g'
>and expected ouput like
>1.2.3
>but obtained this one:
>1.23

The reason you don't get "1.2.3" is because by the time Perl has matched
"12", it can't match the "2" again.

Here's a working regex:

  s/(\d)(?=\d)/$1./g;

The (?=\d) looks ahead for a digit, without actually consuming it.

-- 
Jeff "japhy" Pinyan      [EMAIL PROTECTED]      http://www.pobox.com/~japhy/
RPI Acacia brother #734   http://www.perlmonks.org/   http://www.cpan.org/
** Look for "Regular Expressions in Perl" published by Manning, in 2002 **
<stu> what does y/// stand for?  <tenderpuss> why, yansliterate of course.
[  I'm looking for programming work.  If you like my work, let me know.  ]


-- 
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to