How to extract largest possible string's alpha substrings

Question:

I want to extract some kind of variable names from the string (digits, _, etc. not allowed), without any imports (pure python only) and as short as possible (even if it’s unreadable).

How can i do it?

Example:

"asd123*456qwe_h" -> [asd, qwe, h].

(‘a’, ‘qw’, etc. not allowed)

Asked By: William

||

Answers:

You can use itertools.groupby and str.isalpha which will test for letters only:

["".join(g) for k, g in groupby(s, str.isalpha) if k]
Answered By: Jab

Built-ins only:

s = 'asd123*456qwe_h'
print(s.translate(str.maketrans({k: ' ' for k in s if not k.isalpha()})).split())

Output:

['asd', 'qwe', 'h']
Answered By: Aleksandr Krymskiy
Categories: questions Tags: ,
Answers are sorted by their score. The answer accepted by the question owner as the best is marked with
at the top-right corner.