[Python-ideas] Give regex operations more sugar
desmoulinmichel at gmail.com
Wed Jun 13 09:33:52 EDT 2018
Le 13/06/2018 à 13:06, Ken Hilton a écrit :
> Hi all,
> Regexes are really useful in many places, and to me it's sad to see the
> builtin "re" module having to resort to requiring a source string as an
> argument. It would be much more elegant to simply do "s.search(pattern)"
> than "re.search(pattern, s)".
> I suggest building all regex operations into the str class itself, as
> well as a new syntax for regular expressions.
> Thus a "findall" for any lowercase letter in a string would look like this:
> >>> "1a3c5e7g9i".findall(!%[a-z]%)
> ['a', 'c', 'e', 'g', 'i']
> A "findall" for any letter, case insensitive:
> >>> "1A3c5E7g9I".findall(!%[a-z]%i)
> ['A', 'c', 'E', 'g', 'I']
> A substitution of any letter for the string " WOOF WOOF ":
> >>> "1a3c5e7g9i".sub(!%[a-z]% WOOF WOOF %)
> '1 WOOF WOOF 3 WOOF WOOF 5 WOOF WOOF 7 WOOF WOOF 9 WOOF WOOF '
> A substitution of any letter, case insensitive, for the string "hovercraft":
> >>> "1A3c5E7g9I".sub(!%[a-z]%hovercraft%i)
I often wished for findall and sub to be string methods, so +1 on that.
But there is really no need for a literal. A string pattern is plenty.
More information about the Python-ideas