从字符串

时间:2015-12-09 08:43:39

标签: python python-2.7 strip

我试图从右边删除一定数量的零。例如:

"10101000000"

我想删除4个零...并获取:

"1010100"

我尝试string.rstrip("0")string.strip("0"),但这会删除右边的所有零。我怎样才能做到这一点?

问题不重复,因为我无法使用导入。

7 个答案:

答案 0 :(得分:6)

您可以使用正则表达式

>>> import re
>>> mystr = "10101000000"
>>> numzeros = 4
>>> mystr = re.sub("0{{{}}}$".format(numzeros), "", mystr)
>>> mystr
'1010100'

如果字符串没有以四个零结尾

,这将保留字符串

你也可以检查然后切片

if mystr.endswith("0" * numzeros):
    mystr = mystr[:-numzeros]

答案 1 :(得分:4)

对于已知数量的零,您可以使用切片:

s = "10101000000"
zeros = 4

if s.endswith("0" * zeros):
    s = s[:-zeros]

答案 2 :(得分:1)

rstrip删除最后传递的字符集中的所有字符。您可以删除这样的尾随零:

s = s[:-4] if s[-4:] == "0"*4 else s

答案 3 :(得分:1)

这是我的解决方案:

number = "10101000000"
def my_rstrip(number, char, count=4):
    for x in range(count):
        if number.endswith(char):
            number = number[0:-1]
        else:
            break
    return number

print my_rstrip(number, '0', 4)

答案 4 :(得分:0)

您尝试通过这种方式从字符串中拆分最后4个字符:

string[:-4]

答案 5 :(得分:0)

>>> s[:-4]+s[-4:].replace('0000','')

答案 6 :(得分:0)

不要忘记转换为str

import re

a = 10101000000

re.sub("0000$","", str(a))