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)
有没有办法使用正则表达式来实现这一点?
非常感谢,
使用负面环视:
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)