matching and extracting...
Cliff Wells
LogiplexSoftware at earthlink.net
Tue Jan 14 19:29:30 EST 2003
On Tue, 2003-01-14 at 16:14, Cliff Wells wrote:
[blah blah, snip]
This is a couple of lines shorter and now my design is perfect <wink>:
import re
class matchseq:
def __init__(self, sequence):
self.items = []
exp = ""
for item in sequence.split():
if exp:
exp += " "
k, v = item.split('-')
exp += "(?P<%s>%s)" % (k, ["\D*\d*", k][v == 'p'])
if v == 'x':
self.items.append(k)
self.re = re.compile(exp)
def match(self, sequence):
match = self.re.match(sequence)
results = {}
if match:
for k in self.items:
results[k] = match.group(k)
return results
m = matchseq("a0-p i1-x i2-x i3-? a4-p i5-x i6-? i7-x i8-?")
result = m.match("a1 a1 a2 a3 a4 a5 a6 a7 a8")
if result:
print result
result = m.match("a0 a1 a2 a3 a4 a5 a6 a7 a8")
if result:
print result
--
Cliff Wells, Software Engineer
Logiplex Corporation (www.logiplex.net)
(503) 978-6726 x308 (800) 735-0555 x308
More information about the Python-list
mailing list