"meryl" <silverburgh.me...@gmail.com> wrote in message
news:2d4d8624-043b-4f5f-ae2d-bf73bca3d...@p6g2000pre.googlegroups.com...
Hi,
I have this regular expression
blockRE = re.compile(".*RenderBlock {\w+}")
it works if my source is "RenderBlock {CENTER}".
But I want it to work with
1. RenderTable {TABLE}
So i change the regexp to re.compile(".*Render[Block|Table] {\w+}"),
but that breaks everything
2. RenderBlock (CENTER)
So I change the regexp to re.compile(".*RenderBlock {|\(\w+}|\)"),
that also breaks everything
Can you please tell me how to change my reg exp so that I can support
all 3 cases:
RenderTable {TABLE}
RenderBlock (CENTER)
RenderBlock {CENTER}
[abcd] syntax matches a single character from the set. Use non-grouping
parentheses instead:
-----------------------code----------------------
import re
pat = re.compile(r'Render(?:Block|Table) (?:\(\w+\)|{\w+})')
testdata = '''\
RenderTable {TABLE}
RenderBlock (CENTER)
RenderBlock {CENTER}
RenderTable {TABLE) #shouldn't match
'''
print pat.findall(testdata)
---------------------------------------------------
Result:
['RenderTable {TABLE}', 'RenderBlock (CENTER)', 'RenderBlock {CENTER}']
-Mark
--
http://mail.python.org/mailman/listinfo/python-list