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)
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]
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']
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)
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]
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']