strip()函数不会删除尾随数字

时间:2015-08-18 22:11:10

标签: python python-3.x strip

我尝试以下代码但未能使用python 3.4.3删除尾随数字

file_name = "48athens22.jpg"
result = file_name.strip("0123456789")
print (result)

输出: athens22.jpg

出了什么问题?

5 个答案:

答案 0 :(得分:1)

strip()仅从字符串末尾开始; 22不在字符串的末尾。

以下是如何做你想做的事:

import os


def strip_filename(filename):
    root, ext = os.path.splitext(filename)
    root = root.strip('0123456789')
    return root + ext


print(strip_filename('48athens22.jpg'))  # athens.jpg

答案 1 :(得分:0)

strip仅从字符串的开头和结尾删除。如果您想删除子字符串或模式的任何出现,请尝试使用re.sub

E.g。

re.sub('[0-9]', '', file_name)

答案 2 :(得分:0)

这些数字不是尾随。它们来自'.jpg'

file_name = "48athens22.jpg"
name, *extension = file_name.rpartition('.')
result = name.strip("0123456789") + ''.join(extension)
print (result)

答案 3 :(得分:0)

没有尾随数字,字符串中的最后一个字符'g',22实际上位于中间,如果您不想在条带化时考虑扩展名,则必须首先根据'分割file_name “。然后剥离第一部分然后重新加入它们。

代码 -

filenames = file_name.split('.')

result = filenames[0].strip('0123456789') + '.' + '.'.join(filenames[1:])
print(result)

答案 4 :(得分:0)

适合我:

file_name = "48athens22.jpg1234"
result = file_name.strip("0123456789")
print(result)

给出:

athens22.jpg

如果您要删除所有数字,请尝试:

import re
file_name = "48athens22.jpg1234"
result = re.sub(r'\d+', "", file_name)
print(result)

给出:

athens.jpg    

如果您只想删除“。”之前的数字,请尝试:

result = re.sub(r'\d+\.', ".", file_name)