https://bugzilla.wikimedia.org/show_bug.cgi?id=55184
Web browser: --- Bug ID: 55184 Summary: replace doesn't support optional groups Product: Pywikibot Version: unspecified Hardware: All OS: All Status: NEW Severity: normal Priority: Unprioritized Component: General Assignee: Pywikipedia-bugs@lists.wikimedia.org Reporter: legoktm.wikipedia@gmail.com Classification: Unclassified Mobile Platform: ---
Originally from: http://sourceforge.net/p/pywikipediabot/bugs/1484/ Reported by: Anonymous user Created on: 2012-07-02 13:25:23 Subject: replace doesn't support optional groups Original description: textlib.py (method replaceExcept) doesn't support optional capturing groups in regex.
I tried to run replace.py with the following regex: "RISHMI(T |IM)?" => "RISHMI\1" when running it on a page containing the following text "SOMETHING RISHMI SOMETHING" it crashes with the following error: textlib.py, line 178, in replaceExcept match.group(groupID) + \ TypeError: coercing to Unicode: need string or buffer, NoneType found
line 178 contains the statement: replacement = replacement[:groupMatch.start()] + \ match.group(groupID) + \ replacement[groupMatch.end():]
textlib.py should check for match.group(groupID) ==None and if so, add here empty string instead of match.group(groupID)