On Saturday, February 3, 2018 at 8:10:38 PM UTC-5, Steven D'Aprano wrote:
>
> On Sun, Feb 04, 2018 at 10:54:53AM +1100, Chris Angelico wrote: 
>
> > Picking up this one as an example, but this applies to all of them: 
> > the transformation you're giving here is dangerously flawed. If there 
> > are any regex special characters in the strings, this will either bomb 
> > with an exception, or silently do the wrong thing. The correct way to 
> > do it is (at least, I think it is): 
> > 
> > re.match("|".join(map(re.escape, strings)), testme) 
> > 
> > With that gotcha lurking in the wings, I think this should not be 
> > cavalierly dismissed with "just 'import re' and be done with it". 
>
> Indeed. 
>
> This is not Perl and "just use a regex" is not a close fit to the 
> culture of Python. 
>
> Regexes are a completely separate mini-language, and one which is the 
> opposite of Pythonic. Instead of "executable pseudo-code", regexes are 
> excessively terse and cryptic once you get past the simple examples. 
> Doing anything complicated using regexes is painful. 
>
> Even Larry Wall has criticised regex syntax for choosing poor defaults 
> and information density. (Rarely used symbols get a single character, 
> while frequently needed symbols are coded as multiple characters, so 
> Perlish syntax has the worst of both worlds: too terse for casual users, 
> too verbose for experts, hard to maintain for everyone.) 
>
> Any serious programmer should have at least a passing familiarity with 
> regexes. They are ubiquitous, and useful, especially as a common 
> mini-language for user-specified searching. 
>
> But I consider regexes to be the fall-back for when Python doesn't 
> support the kind of string matching operation I need, not the primary 
> solution. I would never write: 
>
>     re.match('start', text) 
>     re.search('spam', text) 
>
> when 
>
>     text.startswith('start') 
>     text.find('spam') 
>
> will do. I think this proposal to add more power to the string methods 
> is worth some serious consideration. 
>

Completely agree with the sentiment.  I don't know about this proposal, but 
complicated regular expressions are never a good solution even when they 
are the best solution.  

>
>
>
> -- 
> Steve 
> _______________________________________________ 
> Python-ideas mailing list 
> python...@python.org <javascript:> 
> https://mail.python.org/mailman/listinfo/python-ideas 
> Code of Conduct: http://python.org/psf/codeofconduct/ 
>
_______________________________________________
Python-ideas mailing list
Python-ideas@python.org
https://mail.python.org/mailman/listinfo/python-ideas
Code of Conduct: http://python.org/psf/codeofconduct/

Reply via email to