如何从字符串中删除尾随数字

时间:2012-11-04 01:04:33

标签: python

我有一个变量文本,其值如下所示,我需要一些尾随数字,是否有一个python内置函数来执行它...如果不是,请建议如何在python中完成

e.g。 -text=A8980BQDFZDD1701209.3 => -A8980BQDFZDD

6 个答案:

答案 0 :(得分:1)

In [36]: myStr = '-text=A8980BQDFZDD1701209.3'

In [37]: print '-'+myStr.rpartition('=')[-1].rstrip('1234567890.')
-A8980BQDFZDD

答案 1 :(得分:0)

print '123abc382'.rstrip('1234567890')

答案 2 :(得分:0)

您可以使用rstrip。检查python文档。

答案 3 :(得分:0)

print 'text=A8980BQDFZDD1701209.3'.rstrip('1234567890.')[5:]

将完成所需的一切。然而,最后的切片是一种黑客攻击。

答案 4 :(得分:0)

第一步是了解字符串编码的信息,以及在阅读时如何解码。这告诉你数据中的模式是什么,这些将决定你如何操纵字符串以在Python中提取信息。

如果你只需要输掉最后几个数字,你可以轻松地rstrip。这假设您要将“-text =”更改为“ - ”,正如您在问题中所暗示的那样:

input = '-text=A8980BQDFZDD1701209.3'
text = input.split('=')[1]
output =  '-' + text.rstrip('1234567890.')

这是一种潜在的冒险方法,因为它还假设数字后缀从不中包含任何字母字符,并且您要保留的一半永远不会结束在你传递给rstrip的角色中。如果这些事情中的任何一个并不总是对您的数据有效,那么这个解决方案会给您带来不好的结果,您需要找到更准确的模式。

例如,如果'keep'部分总是 12个字符长,您可能希望通过用以下代码替换我的示例的第3行来获取字符串切片:

output = '-' + text[:12]

但最终,它取决于这些字符串是什么,以及哪些规则定义了不同的一半是如何形成的。

答案 5 :(得分:0)

为了完整起见,python3中的这种语法怎么样?

from string import digits

print('123abc382'.rstrip(digits))