<div dir="ltr"><div class="gmail_default" style="font-family:monospace,monospace;font-size:small;color:#0000ff">Just changing the subject line here, to keep things on topic</div><div><div dir="ltr" class="gmail_signature" data-smartmail="gmail_signature"><div dir="ltr"><div><div dir="ltr"><div><div dir="ltr"><div><div dir="ltr"><div><font face="monospace, monospace"><span style="color:rgb(0,0,255)">Sincerely,</span><br></font></div><font color="#0000ff" face="monospace, monospace">Ken;</font><br></div></div></div></div></div></div></div></div></div><br><br><div class="gmail_quote"><div dir="ltr">---------- Forwarded message ---------<br></div>
Date: Thu, 14 Jun 2018 17:29:03 +1000<br>
From: Steven D'Aprano <<a href="mailto:steve@pearwood.info" target="_blank">steve@pearwood.info</a>><br>
To: <a href="mailto:python-ideas@python.org" target="_blank">python-ideas@python.org</a><br>
<div class="gmail_default" style="font-family:monospace,monospace;font-size:small;color:rgb(0,0,255);display:inline">​​</div>Subject: Re: [Python-ideas] Give regex operations more sugar<br>
Message-ID: <<a href="mailto:20180614072902.GH12683@ando.pearwood.info" target="_blank">20180614072902.GH12683@ando.pearwood.info</a>><br>
Content-Type: text/plain; charset=us-ascii<br>
<br>
On Thu, Jun 14, 2018 at 06:33:14PM +1200, Greg Ewing wrote:<br>
> Steven D'Aprano wrote:<br>
> >- should targets match longest first or shortest first? or a flag<br>
> >  to choose which you want?<br>
> ><br>
> >- what if you have multiple targets and you need to give some longer<br>
> >  ones priority, and some shorter ones?<br>
> <br>
> I think the suggestion made earlier is reasonable: match<br>
> them in the order they're given. Then the user gets<br>
> complete control over the priorities.<br>
<br>
"Explicit is better than implicit" -- the problem with having the order <br>
be meaningful is that it opens us up to silent errors when we neglect to <br>
consider the order.<br>
<br>
replace((spam, eggs, cheese) ...) <br>
<br>
*seems* like it simply means "replace any of spam, eggs or cheese" and <br>
it is easy to forget that that the order of replacement is *sometimes* <br>
meaningful. But not always. So this is a bug magnet in waiting.<br>
<br>
So I'd rather have to explicitly specify the order with a parameter <br>
rather than implicitly according to how I happen to have built the <br>
tuple.<br>
<br>
# remove duplicates<br>
targets = tuple(set(targets))<br>
newstring = mystring.replace(targets, replacement)<br>
<br>
That's buggy, but it doesn't look buggy, and you could test it until the <br>
cows come home and never notice the bug.<br>
<br>
<br>
<br>
-- <br>
Steve<br>
<br>
<br>
------------------------------<br>
<br>
Subject: Digest Footer<br>
<br>
_______________________________________________<br>
Python-ideas mailing list<br>
<a href="mailto:Python-ideas@python.org" target="_blank">Python-ideas@python.org</a><br>
<a href="https://mail.python.org/mailman/listinfo/python-ideas" rel="noreferrer" target="_blank">https://mail.python.org/mailman/listinfo/python-ideas</a><br>
<br>
<br>
------------------------------<br>
<br>
End of Python-ideas Digest, Vol 139, Issue 70<br>
*********************************************<br>
</div></div>