J
John Levine
I have a crufty old DNS provisioning system that I'm rewriting and I
hope improving in python. (It's based on tinydns if you know what
that is.)
The record formats are, in the worst case, like this:
foo.[DOM]::[IP6::4361:6368:6574]:600::
What I would like to do is to split this string into a list like this:
[ 'foo.[DOM]','','[IP6::4361:6368:6574]','600','' ]
Colons are separators except when they're inside square brackets. I
have been messing around with re.split() and re.findall() and haven't
been able to come up with either a working separator pattern for
split() or a working field pattern for findall(). I came pretty
close with findall() but can't get it to reliably match the
nothing between two adjacent colons not inside brackets.
Any suggestions? I realize I could do it in a loop where I pick stuff
off the front of the string, but yuck.
This is in python 2.7.5.
hope improving in python. (It's based on tinydns if you know what
that is.)
The record formats are, in the worst case, like this:
foo.[DOM]::[IP6::4361:6368:6574]:600::
What I would like to do is to split this string into a list like this:
[ 'foo.[DOM]','','[IP6::4361:6368:6574]','600','' ]
Colons are separators except when they're inside square brackets. I
have been messing around with re.split() and re.findall() and haven't
been able to come up with either a working separator pattern for
split() or a working field pattern for findall(). I came pretty
close with findall() but can't get it to reliably match the
nothing between two adjacent colons not inside brackets.
Any suggestions? I realize I could do it in a loop where I pick stuff
off the front of the string, but yuck.
This is in python 2.7.5.