strip()函数在Python中的用法

strip()函数在Python中的用法,python,python-2.7,Python,Python 2.7,我有一些用Python编写的脚本,其中提到: hostNumber = hostNumber.strip("0") 当我们将主机号作为'c0001230'时,它将根据脚本删除所有零。 但我们希望它将删除起始零并返回主机号的最后4位strip()函数将删除所有前导字符和尾随字符。在这种情况下: hostnumber = "c0001230" hostnumber = hostnumber.strip("0") print(hostnumber) "c000123" “c”字是有意的吗?根据你的

我有一些用Python编写的脚本,其中提到:

hostNumber = hostNumber.strip("0")
当我们将
主机号
作为
'c0001230'
时,它将根据脚本删除所有零。 但我们希望它将删除起始零并返回
主机号的最后4位

strip()函数将删除所有前导字符和尾随字符。在这种情况下:

hostnumber = "c0001230"
hostnumber = hostnumber.strip("0")
print(hostnumber)
"c000123"
“c”字是有意的吗?根据你的问题,你想要的输出是0123,对吗?我建议的方法是:

hostnumber = "c0001230"
hostnumber = hostnumber.strip("0")
hostnumber = hostnumber[-4:]
print(hostnumber)
"0123"

如果此答案有任何其他问题,请随时提问。

要解决您使用
strip()
的问题,您将遇到字符串以字母开头的问题。您最好通过正则表达式(regex)指定特定的模式。下面是一个正则表达式,它可以实现您想要的功能,以及一些其他示例:

r'[1-9][0-9]+$'
这将查找从1-9开始的数字,后跟从0-9开始直到字符串结尾的一个或多个数字(由
$
表示)

收益率:

['1230', '546', '98061', '64125', '30']
请参阅以进行测试。

您可以使用python模块:

import re
hostNumber = str('c0001230')
hostNumr = re.sub('[^0-9]', '', hostNumber)
hostChar = re.sub(r'[0-9]+', '', hostNumber)
hostNumber = hostChar + str(int(hostNumr))
print(int(hostNumr), hostChar, hostNumber)
当然,您可以删除为清晰起见添加的几行


假设您有hostNumber,它由CHAR+INT组成。如果需要删除尾随的0(即,将1230转换为123,在最后添加
条带

让我澄清您的问题。它总是最后4个数字吗?还是最后3个数字?我建议提供更多示例案例及其所需的输出。如有必要,您可以使用正则表达式。使用
hostNumber[-4:]
将为您提供
1230
。请查看ar
rstrip
lstrip
您没有起始零;在初始
c
之后有一堆零(或者可能是一些其他字符)。您必须在
strip
删除0之前删除它们。例如
hostNumber.lstrip('0c')
。(参数的顺序无关紧要;
0c
c0
都将从字符串左侧删除任意数量的
c
s和
0
s。)str.strip()将从两侧删除。通常用于删除空白。对于这种情况,为什么不使用类似
int(hostNumber[1:])
(假设始终只有一个前导非数字字符)。
import re
hostNumber = str('c0001230')
hostNumr = re.sub('[^0-9]', '', hostNumber)
hostChar = re.sub(r'[0-9]+', '', hostNumber)
hostNumber = hostChar + str(int(hostNumr))
print(int(hostNumr), hostChar, hostNumber)