Jerry Preston wrote:
>
> I am trying to change some text from:
>
>      if ( (fabs(log(im[ii]/im[ii-1])/vstep) >
> fabs(3*log(im[ii-1]/im[ii-5])/(4*vstep)) )  && ((im[ii] > ifr[x]) ||
> (im[ii-1] > ifr[x]))  ) {
> to
>      if ( (fabs(log(im[ii]/im[ii-1])/vstep) > fabs(3 *
> log(im[ii-1]/im[ii-5])/(4 * vstep)) )  && ((im[ii] > ifr[x]) || (im[ii-1] >
> ifr[x]))  ) {
>                                                                ^^^
> ^^^
> with the following:
>
>   s/(?=[A-z|0-9]+)\*(?=[A-z]+)/' * '/g;
>
> What am I doing wrong?

Hi Jerry.

Hmm. I had to pull that apart before I realised that what you're trying to
do is put spaces around all multiplication operators!

What you're doing wrong is using two look-aheads instead of one
look-behind and one look-ahead. You're also trying too hard!

  s/(\w)\*(\w)/$1 * $2/g

will do it, as in the code below.

HTH,

Rob



use strict;
use warnings;

my $c_code = ' fabs(3*log(im[ii-1]/im[ii-5])/(4*vstep)) ';

print $c_code, "\n";

$c_code =~ s/(\w)\*(\w)/$1 * $2/g;

print $c_code, "\n";

**OUTPUT**

 fabs(3*log(im[ii-1]/im[ii-5])/(4*vstep))
 fabs(3 * log(im[ii-1]/im[ii-5])/(4 * vstep))



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

Reply via email to