interactive regular expression

39
Interactive Regular Expression Jonathan Feinberg Dept. of Informatics, Univ. of Oslo Simula Research Laboratory August 2014

Upload: others

Post on 25-Apr-2022

23 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Interactive Regular Expression

Interactive Regular Expression

Jonathan Feinberg

Dept. of Informatics, Univ. of Oslo

Simula Research Laboratory

August 2014

Page 2: Interactive Regular Expression

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

Page 3: Interactive Regular Expression

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

Page 4: Interactive Regular Expression

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

Page 5: Interactive Regular Expression

* 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

Page 6: Interactive Regular Expression

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

Page 7: Interactive Regular Expression

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

Page 8: Interactive Regular Expression

\[. * \]

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

Page 9: Interactive Regular Expression

\[. * \]

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

Page 10: Interactive Regular Expression

\[. * ?\]

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

Page 11: Interactive Regular Expression

\[(. * ?)\]

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

Page 12: Interactive Regular Expression

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

Page 13: Interactive Regular Expression

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

Page 14: Interactive Regular Expression

\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

Page 15: Interactive Regular Expression

\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

Page 16: Interactive Regular Expression

(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

Page 17: Interactive Regular Expression

(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

Page 18: Interactive Regular Expression

(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

Page 19: Interactive Regular Expression

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

Page 20: Interactive Regular Expression

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

Page 21: Interactive Regular Expression

(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

Page 22: Interactive Regular Expression

(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

Page 23: Interactive Regular Expression

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

Page 24: Interactive Regular Expression

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

Page 25: Interactive Regular Expression

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

Page 26: Interactive Regular Expression

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

Page 27: Interactive Regular Expression

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

Page 28: Interactive Regular Expression

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

Page 29: Interactive Regular Expression

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

Page 30: Interactive Regular Expression

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

Page 31: Interactive Regular Expression

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

Page 32: Interactive Regular Expression

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

Page 33: Interactive Regular Expression

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

Page 34: Interactive Regular Expression

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

Page 35: Interactive Regular Expression

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

Page 36: Interactive Regular Expression

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

Page 37: Interactive Regular Expression

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

Page 38: Interactive Regular Expression

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

Page 39: Interactive Regular Expression

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