Ara.T.Howard wrote: (...) > and i'm not that familiar with python syntax. to me this looks like a map > used to bind variables into the regex - or is it binding into a string then > compiling that string into a regex - regexs don't seem to be literal > objects > in pythong AFAIK... i'm thinking i need something like > > word_rule = > ur'(?:(?<![%(l)s])|^)%(parent)s(?:%(subpages)s(?:[%(u)s]+[%(l)s]+){2,})+(?![%(u)s%(l)s]+)' > > % { > ^ > ^ > ^ > 'u': config.chars_upper, > 'l': config.chars_lower, > 'subpages': config.allow_subpages and (wikiutil.CHILD_PREFIX + > '?') or '', > 'parent': config.allow_subpages and (ur'(?:%s)?' % > re.escape(PARENT_PREFIX)) or '', > } > > and this seems to work - but i'm wondering what the 's' in '%(u)s' implies? > obviously the u is the char range (unicode?)... but what's the 's'?
an example may help here: >>> a = 123 >>> '%04d' % a '0123' >>> '%f' % a '123.000000' >>> '%s' % a '123' that "s" tells python to convert the number as string. the form %(key)s tells python to lookup a dictionary "key" and format the found value into a string: >>> d = {'key': 123} >>> '%(key)s' % d '123' so in your code there's some keys named 'u', 'l', 'subpages', etc. and their values are substitued into that big RE, replacing the corresponding key names. HTH. -- deelan <http://www.deelan.com/> -- http://mail.python.org/mailman/listinfo/python-list