Am Wednesday 07 April 2010 10:52:14 schrieb Chris Rebert: > On Wed, Apr 7, 2010 at 1:37 AM, Richard Lamboj <richard.lam...@bilcom.at> wrote: > > i want to parse this String: > > > > version 3.5.1 { > > > > $pid_dir = /opt/samba-3.5.1/var/locks/ > > $bin_dir = /opt/samba-3.5.1/bin/ > > > > service smbd { > > bin = ${bin_dir}smbd -D > > pid = ${pid_dir}smbd.pid > > } > > service nmbd { > > bin = ${bin_dir}nmbd -D > > pid = ${pid_dir}nmbd.pid > > } > > service winbindd { > > bin = ${bin_dir}winbindd -D > > pid = ${pid_dir}winbindd.pid > > } > > } > > > > version 3.2.14 { > > > > $pid_dir = /opt/samba-3.5.1/var/locks/ > > $bin_dir = /opt/samba-3.5.1/bin/ > > > > service smbd { > > bin = ${bin_dir}smbd -D > > pid = ${pid_dir}smbd.pid > > } > > service nmbd { > > bin = ${bin_dir}nmbd -D > > pid = ${pid_dir}nmbd.pid > > } > > service winbindd { > > bin = ${bin_dir}winbindd -D > > pid = ${pid_dir}winbindd.pid > > } > > } > > > > Step 1: > > > > version 3.2.14 { > > > > $pid_dir = /opt/samba-3.5.1/var/locks/ > > $bin_dir = /opt/samba-3.5.1/bin/ > > > > service smbd { > > bin = ${bin_dir}smbd -D > > pid = ${pid_dir}smbd.pid > > } > > service nmbd { > > bin = ${bin_dir}nmbd -D > > pid = ${pid_dir}nmbd.pid > > } > > service winbindd { > > bin = ${bin_dir}winbindd -D > > pid = ${pid_dir}winbindd.pid > > } > > } > > > > Step 2: > > service smbd { > > bin = ${bin_dir}smbd -D > > pid = ${pid_dir}smbd.pid > > } > > Step 3: > > $pid_dir = /opt/samba-3.5.1/var/locks/ > > $bin_dir = /opt/samba-3.5.1/bin/ > > > > Step 4: > > bin = ${bin_dir}smbd -D > > pid = ${pid_dir}smbd.pid > > > > My Regular Expressions: > > version[\s]*[\w\.]*[\s]*\{[\w\s\n\t\{\}=\$\.\-_\/]*\} > > service[\s]*[\w]*[\s]*\{([\n\s\w\=]*(\$\{[\w_]*\})*[\w\s\-=\.]*)*\} > > > > I think it was no good Solution. I'am trying with Groups: > > (service[\s\w]*)\{([\n\w\s=\$\-_\.]*) > > but this part makes Problems: ${bin_dir} > > Regular expressions != Parsers > > Every time someone tries to parse nested structures using regular > expressions, Jamie Zawinski kills a puppy. > > Try using an *actual* parser, such as Pyparsing: > http://pyparsing.wikispaces.com/ > > Cheers, > Chris > -- > Some people, when confronted with a problem, think: > "I know, I'll use regular expressions." Now they have two problems. > http://blog.rebertia.com
Well, after some trying with regex, your both right. I will use pyparse it seems to be the better solution. Kind Regards -- http://mail.python.org/mailman/listinfo/python-list