regexp: matching expressions b4 and after ....
Ben Abbott
bpabbott at mac.com
Mon Sep 8 11:22:27 CDT 2008
On Monday, September 08, 2008, at 11:38AM, <giovanni.lombardo at arcor.de> wrote:
>Hi,
>
>I'm trying to convert a set of matlab codes into Octave. These codes heavily use string manipulation functions
>
>In particular I'm trying to extract a set of equations from an ASCII file. From these equations I extract/replace variables etc.
>
>So, for example, I have g="x^(-1)+y(-1)+z(-1)=0"
>
>I need to extract/replace x, y and (-1). So, for example, I used the command regexprep(g,'(?<=[a-z]*)\(\-[1-9]*\)','\_minus1')
>
>which returned "x^(-1)+y_minus1+z_minus1"
>
>Can I do the same in Octave? How?
>
Doesn't work for me either
octave:1> g="x^(-1)+y(-1)+z(-1)=0"
g = x^(-1)+y(-1)+z(-1)=0
octave:2>
octave:2> regexprep(g,'(?<=[a-z]*)\(\-[1-9]*\)','\_minus1')
error: syntax error in pattern
Running Matlab2007b
>> g='x^(-1)+y(-1)+z(-1)=0';
>> regexprep(g,'(?<=[a-z]*)\(\-[1-9]*\)','\_minus1')
ans =
x^_minus1+y_minus1+z_minus1=0
I'd suggest you try to isolate the error. Perhaps if the developers knew where the specific problem was they could fix it.
I'm not experienced with regexp, but the simpler one below works for your example.
regexprep(g,'\(\-[1-9]*\)','_minus1')
ans = x^_minus1+y_minus1+z_minus1=0
Ben
More information about the Help-octave
mailing list