[Tutor] Continue Matching after First Match
Tom Tucker
tktucker at gmail.com
Sat May 19 02:58:21 CEST 2007
Please forgive the colors, just trying to help illustrate my question.
The below code snipet works as designed, however the regex matches once and
exits. I want it to continue matching and printing until EOF. Any
suggestions?
Why the cStringIO stuff? The input data shown below is collected from
os.popen. I was trying to find an easy way of matching my regex. Matching
with a string seemed easier than looping through the ouput collected. Hmm.
Come to think of it, I guess I could match on the first "^dn" catpure that
output and then keep looping until "^cn:" is seen. Then repeat.
Anyways, any suggestions to fix the below code?
Thanks for the help,
Code Snipet
###########
multi_regex = re.compile(r'dn: uid=(\w+)..*cn: ((\w+ \w+)|(\w+ \w+\.
\w+))..*(?=dn:)', re.MULTILINE| re.DOTALL)
output = os.popen(command).readlines()
voutput = cStringIO.StringIO()
for line in output:
voutput.write(line)
contents = voutput.getvalue() #<-- contents is <type 'str'>
match = re.search(multi_regex, contents)
if match:
print match.group(1)
print match.group(2)
Blue = is what the regex matches
Red = regex groups # match.group(#)
Green = next regex groups not being captured
INPUT Data
###########
version: 1
dn: uid=jtucker,ou=people,dc=companyA,dc=com
host: hostA
host: hostB
host: hostC
description: other
gecos: John Tucker
gidNumber: 1
uidNumber: 1157
sn: Tucker
cn: John Tucker
uid: jtucker
objectClass: top
objectClass: account
objectClass: person
objectClass: posixAccount
objectClass: shadowAccount
objectClass: inetorgperson
objectClass: organizationalPerson
loginShell: /usr/bin/ksh
homeDirectory: /home/jtucker
dn: uid=ttucker,ou=people,dc=companyA,dc=com
loginShell: /usr/bin/zsh
host: hostZ
host: hostC
uid: ttucker
cn: Tom Tucker
sn: Tucker
objectClass: top
objectClass: account
objectClass: person
objectClass: posixAccount
objectClass: shadowAccount
objectClass: inetorgperson
objectClass: organizationalPerson
uidNumber: 108
gidNumber: 102
gecos: Tom Tucker
homeDirectory: /home/ttucker
description: system
Current OUTPUT
#################
jtucker
John Tucker
Desired OUTPUT
################
jtucker
John Tucker
ttucker
Tom Tucker
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://mail.python.org/pipermail/tutor/attachments/20070518/bdeec5a6/attachment.html
More information about the Tutor
mailing list