Interactive Regular Expression

Post on 25-Apr-2022

23 views 0 download

Transcript of Interactive Regular Expression

Interactive Regular Expression

Jonathan Feinberg

Dept. of Informatics, Univ. of Oslo

Simula Research Laboratory

August 2014

Interactive search and replace

Editing a file often require changing out old text.

Certain tasks are fully or partially repetative in structure.

In large documents, making such changes is time costly (andboring).

Interactive regular expression through your text editor can saveyou allot of time if used correctly.

Interactive Regular Expression – p.1

Demonstration: Matlab to Python converssion

function y = test(b,a,x)[nt,nx] = size(x);y = zeros(nt,nx);for k=1:nx

y(k,:) = flipud(trending(b, a, x(k,:))));end

end

function y = trending(b,a,x)[np,ns] = size(x);y = zeros(np,1);ord = length(b);for i=1:np

y(i) = b(1)*x(i);for j = 1:(min(ord,i)-1)

y(i) = y(i) + b(j+1) * x(i - j)end

endend

Interactive Regular Expression – p.2

end

function y = test(b,a,x)[nt,nx] = size(x);y = zeros(nt,nx);for k=1:nx

y(k,:) = flipud(tr end ing(b, a, x(k,:))));

end

end

function y = tr end ing(b,a,x)[np,ns] = size(x);y = zeros(np,1);ord = length(b);for i=1:np

y(i) = b(1)*x(i);for j = 1:(min(ord,i)-1)

y(i) = y(i) + b(j+1) * x(i - j)

end

end

end Interactive Regular Expression – p.3

* end\n

function y = test(b,a,x)[nt,nx] = size(x);y = zeros(nt,nx);for k=1:nx

y(k,:) = flipud(trending(b, a, x(k,:))));

end

end

function y = trending(b,a,x)[np,ns] = size(x);y = zeros(np,1);ord = length(b);for i=1:np

y(i) = b(1)*x(i);for j = 1:(min(ord,i)-1)

y(i) = y(i) + b(j+1) * x(i - j)

end

end

endInteractive Regular Expression – p.4

s/ * end\n/

function y = test(b,a,x)[nt,nx] = size(x);y = zeros(nt,nx);for k=1:nx

y(k,:) = flipud(trending(b, a, x(k,:))));

end

end

function y = trending(b,a,x)[np,ns] = size(x);y = zeros(np,1);ord = length(b);for i=1:np

y(i) = b(1)*x(i);for j = 1:(min(ord,i)-1)

y(i) = y(i) + b(j+1) * x(i - j)

end

end

endInteractive Regular Expression – p.5

s/ * end\n/

function y = test(b,a,x)[nt,nx] = size(x);y = zeros(nt,nx);for k=1:nx

y(k,:) = flipud(trending(b, a, x(k,:))));

function y = trending(b,a,x)[np,ns] = size(x);y = zeros(np,1);ord = length(b);for i=1:np

y(i) = b(1)*x(i);for j = 1:(min(ord,i)-1)

y(i) = y(i) + b(j+1) * x(i - j)

Interactive Regular Expression – p.6

\[. * \]

function y = test(b,a,x)[nt,nx] = size(x);y = zeros(nt,nx);for k=1:nx

y(k,:) = flipud(trending(b, a, x(k,:))));

function y = trending(b,a,x)[np,ns] = size(x);y = zeros(np,1);ord = length(b);for i=1:np

y(i) = b(1)*x(i);for j = 1:(min(ord,i)-1)

y(i) = y(i) + b(j+1) * x(i - j)

Interactive Regular Expression – p.7

\[. * \]

function y = test(b,a,x)

[nt,nx] = size(x);

y = zeros(nt,nx);

for k=1:nx

y(k,:) = flipud(trending(b, a, x(k,:))));

function y = trending(b,a,x)

[np,ns] = size(x);

y = zeros(np,1);ord = length(b);for i=1:np

y(i) = b(1)*x(i);for j = 1:(min(ord,i)-1)

y(i) = y(i) + b(j+1) * x(i - j)

Interactive Regular Expression – p.8

\[. * ?\]

function y = test(b,a,x)

[nt,nx] = size(x);

y = zeros(nt,nx);for k=1:nx

y(k,:) = flipud(trending(b, a, x(k,:))));

function y = trending(b,a,x)

[np,ns] = size(x);

y = zeros(np,1);ord = length(b);for i=1:np

y(i) = b(1)*x(i);for j = 1:(min(ord,i)-1)

y(i) = y(i) + b(j+1) * x(i - j)

Interactive Regular Expression – p.9

\[(. * ?)\]

function y = test(b,a,x)

[ nt,nx ] = size(x);

y = zeros(nt,nx);for k=1:nx

y(k,:) = flipud(trending(b, a, x(k,:))));

function y = trending(b,a,x)

[ np,ns ] = size(x);

y = zeros(np,1);ord = length(b);for i=1:np

y(i) = b(1)*x(i);for j = 1:(min(ord,i)-1)

y(i) = y(i) + b(j+1) * x(i - j)

Interactive Regular Expression – p.10

s/\[(. * ?)\]/\1

function y = test(b,a,x)

[ nt,nx ] = size(x);

y = zeros(nt,nx);for k=1:nx

y(k,:) = flipud(trending(b, a, x(k,:))));

function y = trending(b,a,x)

[ np,ns ] = size(x);

y = zeros(np,1);ord = length(b);for i=1:np

y(i) = b(1)*x(i);for j = 1:(min(ord,i)-1)

y(i) = y(i) + b(j+1) * x(i - j)

Interactive Regular Expression – p.11

s/\[(. * ?)\]/\1

function y = test(b,a,x)

nt,nx = size(x);

y = zeros(nt,nx);for k=1:nx

y(k,:) = flipud(trending(b, a, x(k,:))));

function y = trending(b,a,x)np,ns = size(x);

y = zeros(np,1);ord = length(b);for i=1:np

y(i) = b(1)*x(i);for j = 1:(min(ord,i)-1)

y(i) = y(i) + b(j+1) * x(i - j)

Interactive Regular Expression – p.12

\w+\(. * ?\)

function y = test(b,a,x)nt,nx = size(x);y = zeros(nt,nx);for k=1:nx

y(k,:) = flipud(trending(b, a, x(k,:))));

function y = trending(b,a,x)np,ns = size(x);y = zeros(np,1);ord = length(b);for i=1:np

y(i) = b(1)*x(i);for j = 1:(min(ord,i)-1)

y(i) = y(i) + b(j+1) * x(i - j)

Interactive Regular Expression – p.13

\w+\(. * ?\)

function y = test(b,a,x)

nt,nx = size(x) ;

y = zeros(nt,nx) ;

for k=1:nxy(k,:) = flipud(trending(b, a, x(k,:) )));

function y = trending(b,a,x)

np,ns = size(x) ;

y = zeros(np,1) ;

ord = length(b) ;

for i=1:np

y(i) = b(1) * x(i) ;

for j = 1:( min(ord,i) -1)

y(i) = y(i) + b(j+1) * x(i - j)

Interactive Regular Expression – p.14

(a|b|x|y)\(. * ?\)

function y = test(b,a,x)nt,nx = size(x);y = zeros(nt,nx);for k=1:nx

y (k,:) = flipud(trending(b, a, x (k,:) )));

function y = trending(b,a,x)np,ns = size(x);y = zeros(np,1);ord = length(b);for i=1:np

y (i) = b (1) * x (i) ;

for j = 1:(min(ord,i)-1)

y (i) = y (i) + b (j+1) * x (i - j)

Interactive Regular Expression – p.15

(a|b|x|y)\([ˆ,)] * \)

function y = test(b,a,x)nt,nx = size(x);y = zeros(nt,nx);for k=1:nx

y(k,:) = flipud(trending(b, a, x(k,:))));

function y = trending(b,a,x)np,ns = size(x);y = zeros(np,1);ord = length(b);for i=1:np

y (i) = b (1) * x (i) ;

for j = 1:(min(ord,i)-1)

y (i) = y (i) + b (j+1) * x (i - j)

Interactive Regular Expression – p.16

(a|b|x|y)\(([ˆ,)] * )\)

function y = test(b,a,x)nt,nx = size(x);y = zeros(nt,nx);for k=1:nx

y(k,:) = flipud(trending(b, a, x(k,:))));

function y = trending(b,a,x)np,ns = size(x);y = zeros(np,1);ord = length(b);for i=1:np

y ( i ) = b ( 1 ) * x ( i ) ;

for j = 1:(min(ord,i)-1)

y ( i ) = y ( i ) + b ( j+1 ) * x ( i - j )

Interactive Regular Expression – p.17

s/(a|b|x|y)\(([ˆ,)] * )\)/\1[\2-1]

function y = test(b,a,x)nt,nx = size(x);y = zeros(nt,nx);for k=1:nx

y(k,:) = flipud(trending(b, a, x(k,:))));

function y = trending(b,a,x)np,ns = size(x);y = zeros(np,1);ord = length(b);for i=1:np

y ( i ) = b ( 1 ) * x ( i ) ;

for j = 1:(min(ord,i)-1)

y ( i ) = y ( i ) + b ( j+1 ) * x ( i - j )

Interactive Regular Expression – p.18

s/(a|b|x|y)\(([ˆ,)] * )\)/\1[\2-1]

function y = test(b,a,x)nt,nx = size(x);y = zeros(nt,nx);for k=1:nx

y(k,:) = flipud(trending(b, a, x(k,:))));

function y = trending(b,a,x)np,ns = size(x);y = zeros(np,1);ord = length(b);for i=1:np

y[i-1] = b[1-1] * x[i-1] ;

for j = 1:(min(ord,i)-1)

y[i-1] = y[i-1] + b[j+1-1] * x[i - j-1]

Interactive Regular Expression – p.19

(x|y)\(k,:\)

function y = test(b,a,x)nt,nx = size(x);y = zeros(nt,nx);for k=1:nx

y(k,:) = flipud(trending(b, a, x(k,:))));

function y = trending(b,a,x)np,ns = size(x);y = zeros(np,1);ord = length(b);for i=1:np

y[i-1] = b[1-1]*x[i-1];for j = 1:(min(ord,i)-1)

y[i-1] = y[i-1] + b[j+1-1] * x[i - j-1]

Interactive Regular Expression – p.20

(x|y)\(k,:\)

function y = test(b,a,x)nt,nx = size(x);y = zeros(nt,nx);for k=1:nx

y (k,:) = flipud(trending(b, a, x (k,:) )));

function y = trending(b,a,x)np,ns = size(x);y = zeros(np,1);ord = length(b);for i=1:np

y[i-1] = b[1-1]*x[i-1];for j = 1:(min(ord,i)-1)

y[i-1] = y[i-1] + b[j+1-1] * x[i - j-1]

Interactive Regular Expression – p.21

s/(x|y)\(k,:\)/\1[k-1,:]

function y = test(b,a,x)nt,nx = size(x);y = zeros(nt,nx);for k=1:nx

y (k,:) = flipud(trending(b, a, x (k,:) )));

function y = trending(b,a,x)np,ns = size(x);y = zeros(np,1);ord = length(b);for i=1:np

y[i-1] = b[1-1]*x[i-1];for j = 1:(min(ord,i)-1)

y[i-1] = y[i-1] + b[j+1-1] * x[i - j-1]

Interactive Regular Expression – p.22

s/(x|y)\(k,:\)/\1[k-1,:]

function y = test(b,a,x)nt,nx = size(x);y = zeros(nt,nx);for k=1:nx

y[k-1,:] = flipud(trending(b, a, x[k-1,:] )));

function y = trending(b,a,x)np,ns = size(x);y = zeros(np,1);ord = length(b);for i=1:np

y[i-1] = b[1-1]*x[i-1];for j = 1:(min(ord,i)-1)

y[i-1] = y[i-1] + b[j+1-1] * x[i - j-1]

Interactive Regular Expression – p.23

for .=.:..

function y = test(b,a,x)nt,nx = size(x);y = zeros(nt,nx);for k=1:nx

y[k-1,:] = flipud(trending(b, a, x[k-1,:])));

function y = trending(b,a,x)np,ns = size(x);y = zeros(np,1);ord = length(b);for i=1:np

y[i-1] = b[1-1]*x[i-1];for j = 1:(min(ord,i)-1)

y[i-1] = y[i-1] + b[j+1-1] * x[i - j-1]

Interactive Regular Expression – p.24

for .=.:..

function y = test(b,a,x)nt,nx = size(x);y = zeros(nt,nx);

for k=1:nxy[k-1,:] = flipud(trending(b, a, x[k-1,:])));

function y = trending(b,a,x)np,ns = size(x);y = zeros(np,1);ord = length(b);

for i=1:np

y[i-1] = b[1-1]*x[i-1];for j = 1:(min(ord,i)-1)

y[i-1] = y[i-1] + b[j+1-1] * x[i - j-1]

Interactive Regular Expression – p.25

for (.) ?= ?(.):(.+)

function y = test(b,a,x)nt,nx = size(x);y = zeros(nt,nx);

for k = 1 : nxy[k-1,:] = flipud(trending(b, a, x[k-1,:])));

function y = trending(b,a,x)np,ns = size(x);y = zeros(np,1);ord = length(b);

for i = 1 : np

y[i-1] = b[1-1]*x[i-1];

for j = 1 : (min(ord,i)-1)

y[i-1] = y[i-1] + b[j+1-1] * x[i - j-1]

Interactive Regular Expression – p.26

s/for (.) ?= ?(.):(.+)/

for \1 in xrange(\2, \3):

function y = test(b,a,x)nt,nx = size(x);y = zeros(nt,nx);

for k = 1 : nxy[k-1,:] = flipud(trending(b, a, x[k-1,:])));

function y = trending(b,a,x)np,ns = size(x);y = zeros(np,1);ord = length(b);

for i = 1 : np

y[i-1] = b[1-1]*x[i-1];

for j = 1 : (min(ord,i)-1)

y[i-1] = y[i-1] + b[j+1-1] * x[i - j-1]

Interactive Regular Expression – p.27

s/for (.) ?= ?(.):(.+)/

for \1 in xrange(\2, \3):

function y = test(b,a,x)nt,nx = size(x);y = zeros(nt,nx);

for k in xrange(1, nx):

y[k-1,:] = flipud(trending(b, a, x[k-1,:])));

function y = trending(b,a,x)np,ns = size(x);y = zeros(np,1);ord = length(b);

for i in xrange(1, np):

y[i-1] = b[1-1]*x[i-1];

for j in xrange(1, min(ord,i)-1)):

y[i-1] = y[i-1] + b[j+1-1] * x[i - j-1]

Interactive Regular Expression – p.28

s/for (.) ?= ?(.):(.+)/

for \1 in xrange(\2, \3):

function y = test(b,a,x)nt,nx = size(x);y = zeros(nt,nx);for k in xrange(1, nx):

y[k-1,:] = flipud(trending(b, a, x[k-1,:])));

function y = trending(b,a,x)np,ns = size(x);y = zeros(np,1);ord = length(b);for i in xrange(1, np):

y[i-1] = b[1-1]*x[i-1];for j in xrange(1, min(ord,i)-1)):

y[i-1] = y[i-1] + b[j+1-1] * x[i - j-1]

Interactive Regular Expression – p.29

function \w+ = \w+\([ˆ)]+\)

function y = test(b,a,x)

nt,nx = size(x);y = zeros(nt,nx);for k in xrange(1, nx):

y[k-1,:] = flipud(trending(b, a, x[k-1,:])));

function y = trending(b,a,x)

np,ns = size(x);y = zeros(np,1);ord = length(b);for i in xrange(1, np):

y[i-1] = b[1-1]*x[i-1];for j in xrange(1, (min(ord,i)-1)):

y[i-1] = y[i-1] + b[j+1-1] * x[i - j-1]

Interactive Regular Expression – p.30

function (\w+) = ((\n|.) * ?)function

function y = test(b,a,x)

nt,nx = size(x);

y = zeros(nt,nx);

for k in xrange(1, nx):

y[k-1,:] = flipud(trending(b, a, x[k-1,:])));

function y = trending(b,a,x)np,ns = size(x);y = zeros(np,1);ord = length(b);for i in xrange(1, np):

y[i-1] = b[1-1]*x[i-1];for j in xrange(1, (min(ord,i)-1)):

y[i-1] = y[i-1] + b[j+1-1] * x[i - j-1]

Interactive Regular Expression – p.31

s/\nfunction/#\0

function y = test(b,a,x)nt,nx = size(x);y = zeros(nt,nx);for k in xrange(1, nx):

y[k-1,:] = flipud(trending(b, a, x[k-1,:])));

function y = trending(b,a,x)np,ns = size(x);y = zeros(np,1);ord = length(b);for i in xrange(1, np):

y[i-1] = b[1-1]*x[i-1];for j in xrange(1, (min(ord,i)-1)):

y[i-1] = y[i-1] + b[j+1-1] * x[i - j-1]

Interactive Regular Expression – p.32

s/\nfunction/#\0

#

function y = test(b,a,x)nt,nx = size(x);y = zeros(nt,nx);for k in xrange(1, nx):

y[k-1,:] = flipud(trending(b, a, x[k-1,:])));

#

function y = trending(b,a,x)np,ns = size(x);y = zeros(np,1);ord = length(b);for i in xrange(1, np):

y[i-1] = b[1-1]*x[i-1];for j in xrange(1, (min(ord,i)-1)):

y[i-1] = y[i-1] + b[j+1-1] * x[i - j-1]

Interactive Regular Expression – p.33

function (\w+) = (. * )(([ˆ#]|\n) * )#?

#function y = test(b,a,x)

nt,nx = size(x);y = zeros(nt,nx);for k in xrange(1, nx):

y[k-1,:] = flipud(trending(b, a, x[k-1,:])));#function y = trending(b,a,x)

np,ns = size(x);y = zeros(np,1);ord = length(b);for i in xrange(1, np):

y[i-1] = b[1-1]*x[i-1];for j in xrange(1, (min(ord,i)-1)):

y[i-1] = y[i-1] + b[j+1-1] * x[i - j-1]

Interactive Regular Expression – p.34

function (\w+) = (. * )(([ˆ#]|\n) * )#?

#function y = test(b,a,x):

nt,nx = size(x);y = zeros(nt,nx);for k in xrange(1, nx):

y[k-1,:] = flipud(trending(b, a, x[k-1,:])));#def y = trending(b,a,x):

np,ns = size(x);y = zeros(np,1);ord = length(b);for i in xrange(1, np):

y[i-1] = b[1-1]*x[i-1];for j in xrange(1, (min(ord,i)-1)):

y[i-1] = y[i-1] + b[j+1-1] * x[i - j-1]

Interactive Regular Expression – p.35

s/function (\w+) = (. * )(([ˆ#]|\n) * )#?/

def \2:\3 \n return \1#function y = test(b,a,x):

nt,nx = size(x);y = zeros(nt,nx);for k in xrange(1, nx):

y[k-1,:] = flipud(trending(b, a, x[k-1,:])));#def y = trending(b,a,x):

np,ns = size(x);y = zeros(np,1);ord = length(b);for i in xrange(1, np):

y[i-1] = b[1-1]*x[i-1];for j in xrange(1, (min(ord,i)-1)):

y[i-1] = y[i-1] + b[j+1-1] * x[i - j-1]

Interactive Regular Expression – p.36

s/function (\+) = (. * )(([ˆ#]|\n) * )#?/

def \2:\3 \n return \1#def test(b,a,x):

nt,nx = size(x);y = zeros(nt,nx);for k in xrange(1, nx):

y[k-1,:] = flipud(trending(b, a, x[k-1,:])));

return y

def trending(b,a,x):

np,ns = size(x);y = zeros(np,1);ord = length(b);for i in xrange(1, np):

y[i-1] = b[1-1]*x[i-1];for j in xrange(1, (min(ord,i)-1)):

y[i-1] = y[i-1] + b[j+1-1] * x[i - j-1]

return y

Interactive Regular Expression – p.37

Completed Script

def test(b,a,x):nt,nx = size(x);y = zeros(nt,nx);for k in xrange(1, nx):

y[k-1,:] = flipud(trending(b, a, x[k-1,:])));return y

def trending(b,a,x):np,ns = size(x);y = zeros(np,1);ord = length(b);for i in xrange(1, np):

y[i-1] = b[1-1]*x[i-1];for j in xrange(1, (min(ord,i)-1)):

y[i-1] = y[i-1] + b[j+1-1] * x[i - j-1]return y

Interactive Regular Expression – p.38