我正在尝试从字符串中提取字母,这些字母后面没有,或者后面没有直接跟数字。
这是一个示例字符串:
string = "ts0060_LOD-70234_lr2_billboards_rgba_over_s3d_lf_v5_2Kdciufa_lnh"
这是我目前所拥有的:
re.findall(r"[a-z]+", string.lower())
结果如下:
['ts', 'lod', 'lr', 'billboards', 'rgba', 'over', 's', 'd', 'lf', 'v', 'kdciufa', 'lnh']
...但我正在寻找的结果更像这样:
['lod', 'billboards', 'rgba', 'over', 'lf', 'lnh']
是否有使用正则表达式实现此目的的方法?
非常感谢,
请您参考如下方法:
使用负面环视:
re.findall(r"(?<![\da-z])[a-z]+(?![\da-z])", string.lower())
这匹配不是紧跟更多字母或数字的小写字母。
演示:
>>> 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']
