Revision: 4395 Author: russblau Date: 2007-10-01 12:49:45 +0000 (Mon, 01 Oct 2007)
Log Message: ----------- more regex escaping for replaceCategoryInPlace()
Modified Paths: -------------- trunk/pywikipedia/wikipedia.py
Modified: trunk/pywikipedia/wikipedia.py =================================================================== --- trunk/pywikipedia/wikipedia.py 2007-09-30 23:26:32 UTC (rev 4394) +++ trunk/pywikipedia/wikipedia.py 2007-10-01 12:49:45 UTC (rev 4395) @@ -2912,7 +2912,18 @@ # title might not be formatted correctly on the wiki if title[0].isalpha() and not site.nocapitalize: title = "[%s%s]" % (title[0].upper(), title[0].lower()) + title[1:] - title = title.replace(" ", "[ _]+").replace("(", r"(").replace(")", r")") + # title might also contain regex special characters + title = title.replace(" ", "[ _]+")\ + .replace("(", r"(")\ + .replace(")", r")")\ + .replace(".", r".")\ + .replace("^", r"^")\ + .replace("$", r"$")\ + .replace("*", r"*")\ + .replace("+", r"+")\ + .replace("?", r"?") + # note: | [ ] { } not escaped here because they are not legal in + # MW page titles categoryR = re.compile(r'[[\s*(%s)\s*:\s*%s\s*((?:|[^]]+)?]])' % (catNamespace, title)) if newcat is None: