[Python-ideas] Give regex operations more sugar

Chris Angelico rosuav at gmail.com
Wed Jun 13 16:52:58 EDT 2018

On Thu, Jun 14, 2018 at 6:43 AM, Michel Desmoulin
<desmoulinmichel at gmail.com> wrote:
> Le 13/06/2018 à 19:11, Mike Miller a écrit :
>> On 2018-06-13 06:33, Michel Desmoulin wrote:
>>> I often wished for findall and sub to be string methods, so +1 on that.
>> Agreed, and there are a few string functions that could be extended (to
>> take a sequence) to handle more cases that push folks to regex, perhaps
>> earlier than they should.
> str.replace come to mind. It's a annoying to have to chain it 5 times
> while we could pass optionally a tuple.

That would be handy. Either pass two sequences of equal length
(replace each with the corresponding), or one sequence and one string
(replaceactual any with that). (And yes, I know that a string IS a
sequence.) This would want to be semantically different from chained
calls, in that a single replace([x,y,z], q) would avoid re-replacing;
but for many situations, it'll be functionally identical.

> several startswith() and endswith() require a loop, but we could make
> them accept *args.

Not without breaking other code: they already accept two optional
parameters. It'd have to be accepting a tuple of strings. Which...
they already do. :)

startswith(...) method of builtins.str instance
    S.startswith(prefix[, start[, end]]) -> bool

    Return True if S starts with the specified prefix, False otherwise.
    With optional start, test S beginning at that position.
    With optional end, stop comparing S at that position.
    prefix can also be a tuple of strings to try.


More information about the Python-ideas mailing list