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: