如何提取图片文件名中_digit部分之前的文本?
提取多下划线图片名中数字前缀前的文本
针对你遇到的多下划线图片名提取需求,用正则表达式可以轻松解决,这里提供两种实用方法:
方法一:替换末尾的数字后缀
用re.sub把最后面的_数字.jpg部分替换为空字符串,剩下的就是目标文本:
import re name = 'Egyptian_Mau_214.jpg' target_name = re.sub(r'_\d+\.jpg$', '', name) print(target_name) # 输出: Egyptian_Mau
正则说明:
_\d+:匹配下划线开头,后面跟一个或多个数字\.jpg$:匹配.jpg结尾($确保只匹配字符串末尾的后缀)
方法二:捕获前缀内容
用re.findall直接捕获最后一个下划线之前的所有内容:
import re name = 'Egyptian_Mau_214.jpg' target_name = re.findall(r'^(.*)_\d+\.jpg$', name)[0] print(target_name) # 输出: Egyptian_Mau
正则说明:
^(.*):从字符串开头开始,捕获所有内容直到遇到最后一个符合要求的下划线- 后面的
_\d+\.jpg$匹配末尾的数字后缀,确保捕获的是正确的前缀部分
这两种方法同样适用于单下划线的场景(比如Abyssinian_1.jpg),测试后都能正确提取出Abyssinian。
内容的提问来源于stack exchange,提问作者neural science
相关产品推荐
相关产品推荐

