如何用纯Python(无模块导入)极简实现提取字符串中的连续纯字母子串
如何用纯Python(无模块导入)极简实现提取字符串中的连续纯字母子串
嘿,这就给你整个超精简的纯Python实现,完全不用导入任何模块,哪怕代码看起来有点紧凑,但绝对满足你的“短”需求:
lambda s:[*filter(None,''.join(c if c.isalpha() else ' 'for c in s).split())]
要是想当成函数方便调用,直接赋值就行:
extract_alpha = lambda s:[*filter(None,''.join(c if c.isalpha() else ' 'for c in s).split())]
逻辑拆解(怕你看不懂这堆紧凑代码):
- 遍历字符串的每个字符,把非字母的字符全部替换成空格
- 用
split()把处理后的字符串按空格分割,自动忽略连续的空格 - 最后用
filter(None, ...)去掉可能出现的空字符串(比如原字符串开头/结尾是非字母的情况)
测试下你给的例子:
输入:
"asd123*456qwe_h"
调用extract_alpha("asd123*456qwe_h")
输出:['asd', 'qwe', 'h']
完全匹配你要的结果~
备注:内容来源于stack exchange,提问作者William
相关产品推荐
相关产品推荐

