Terry Reedy wrote: > On 1/12/2010 5:10 PM, MRAB wrote: >> Hi all, >> >> I'm back on the regex module after doing other things and I'd like your >> opinion on a number of matters: >> >> Firstly, the current re module has a bug whereby it doesn't split on >> zero-width matches. The BDFL has said that this behaviour should be >> retained by default in case any existing software depends on it. My >> question is: should my regex module still do this for Python 3? >> Speaking personally, I'd like it to behave correctly, and Python 3 is >> the version where backwards-compatibility is allowed to be broken. > > Are you writing a new module with a new name? If so, do you expect it to > replace or augment re? (This is the same question as for optparse vs. > argparse, which I understand to not yet be decided.) > It's a module called 'regex'. It can be used in place of 're' by using "import regex as re", except for differences such as "\g<name>" being a legal group reference in pattern strings. >> >> Secondly, Python 2 is reaching the end of the line and Python 3 is the >> future. Should I still release a version that works with Python 2? I'm >> thinking that it could be confusing if new regex module did zero-width >> splits correctly in Python 3 but not in Python 2. And also, should I >> release it only for Python 3 as a 'carrot'? > > 2.7 is in alpha with no plans for 2.8, so unless you finish real soon, > 2.7 stdlib is already out. A new engine should get some community > testing before going in the stdlib. Even 3.2 beta is not that far off > (8-9 months?) Do *you* want to do the extra work for a 2.x release on PyPI? > >> Finally, the module allows some extra backslash escapes, eg \g<name>, in >> the pattern. Should it treat ill-formed escapes, eg \g, as it would have >> treated them in the re module? > > What does re do with analogous cases? > The 're' module treats r"\g" as "g"; both 're' and 'regex' treat, say, r"\q" as "q". The closest analogue to what I'm asking about is that re treats the ill-formed repeat r"x{1," as a literal, which sort of suggests that r"\g" should be treated as "g", but r"\g<name>" is now a group reference (re would treat that as "g<name>". Does that sound reasonable?
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4