如何删除长度为7个字符的所有零



我制作了一个没有空格的字符串。所以我用0000000代替空格。但是不会有字母。例如,000000020000000050000190000000200000000应该等于"test"。对不起,我对蟒蛇很陌生,不太好。所以如果有人能帮我,那就太好了。

您应该能够使用正则表达式和re.sub()达到预期的效果

如果要提取文字单词"test"从评论中提到的字符串中,您需要考虑这样一个事实,即如果您有8个0's,它将从左到右匹配前7个,因此像20这样的数字后面跟着7个0's会导致一些问题。我们可以通过反向匹配字符串(从右到左)来解决这个问题,然后反转完成的字符串以撤销最初的反转。

这是我提出的解决方案,作为我的修改后的答案:

import re
my_string = '000000020000000050000000190000000200000000'
# Substitute a space in place of 7 0's
# Reverse the string in the input, and then reverse the output
new_string = re.sub('0{7}', ' ', my_string[::-1])[::-1]
# >>> new_string
# ' 20 5 19 20 '

然后我们可以从这个答案中去掉开头和结尾的空格,并将其分割成一个数组

my_array = new_string.strip().split()
# >>> my_array
# ['20', '5', '19', '20']

之后,您可以以任何您认为合适的方式处理该数组,以获得单词"test"Out of it.

我的解决方案可能是:

import string
word = ''.join([string.ascii_lowercase[int(x) - 1] for x in my_array])
# >>> word
# 'test'

注意:这个答案已经完全重写(v2)。

最新更新