How to use python regular expression to substitute string value

Pasi Savolainen psavo at iki.fi
Sun Feb 26 13:54:49 EST 2006


Allerdyce.John at gmail.com writes:

> Hi,
> I am new to python. I would like to know how to use python regular
> expression to substitute string value?
> I have an input string like this:
> x:11 y:0 w:760 h:19 area:14440 areaPerCent:0
> totalAreaPerCent:-3.08011e+16 type:3 path:///-/1/1
>
> and I would like to convert it to:
> rect x="11" y="0" width="760" height="14440"
>
> all I care about the input string is x, y, w, h.

I'd say you're better off with 'findall':
- -
import re
line = "x:11 y:0 w:760 h:19 area:14440 areaPerCent:0 totalAreaPerCent:-3.08011e+16 type:3 path:///-/1/1"
pattern = "x:(\d+) y:(\d+) w:(\d+) h:(\d+) area:(\d+)"
x, y, width, height, area = re.findall(pattern, line)[0]
print "rect x=\"%(x)s\" y=\"%(y)s\" width=\"%(width)s\" height=\"%(height)s\" ..." % locals()
- -

x .. area are strings when they come out of findall, so you may want to:
- -
x .. area = map (lambda x: int(x), re.findall (pattern, line)[0]
- -

-- 
   Psi -- <http://www.iki.fi/pasi.savolainen>



More information about the Python-list mailing list