在字符串中查找字母,后面没有数字......可能使用 RE?

iGw*_*wok 3 python regex string

我正在尝试从字符串中提取不跟在后面或后面不直接跟数字的字母。

这是一个示例字符串:

string = "ts0060_LOD-70234_lr2_billboards_rgba_over_s3d_lf_v5_2Kdciufa_lnh"
Run Code Online (Sandbox Code Playgroud)

这是我到目前为止:

re.findall(r"[a-z]+", string.lower())
Run Code Online (Sandbox Code Playgroud)

这给出了这个结果:

['ts', 'lod', 'lr', 'billboards', 'rgba', 'over', 's', 'd', 'lf', 'v', 'kdciufa', 'lnh']
Run Code Online (Sandbox Code Playgroud)

...但我正在寻找的结果更像是这样的:

['lod', 'billboards', 'rgba', 'over', 'lf', 'lnh']
Run Code Online (Sandbox Code Playgroud)

有没有办法使用正则表达式来实现这一点?

非常感谢,

Mar*_*ers 7

使用负面环视:

re.findall(r"(?<![\da-z])[a-z]+(?![\da-z])", string.lower())
Run Code Online (Sandbox Code Playgroud)

这匹配前面或后面没有更多字母或数字的小写字母。

演示:

>>> import re
>>> string = "ts0060_LOD-70234_lr2_billboards_rgba_over_s3d_lf_v5_2Kdciufa_lnh"
>>> re.findall(r"(?<![\da-z])[a-z]+(?![\da-z])", string.lower())
['lod', 'billboards', 'rgba', 'over', 'lf', 'lnh']
Run Code Online (Sandbox Code Playgroud)