我有一个变量文本,其值如下所示,我需要一些尾随数字,是否有一个python内置函数来执行它...如果不是,请建议如何在python中完成
e.g。 -text=A8980BQDFZDD1701209.3
=> -A8980BQDFZDD
答案 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))