2

我有一个变量文本,其值如下所示,我需要尾随数字条,是否有 python 内置函数可以做到这一点..如果没有,请建议如何在 python 中完成

例如-text=A8980BQDFZDD1701209.3=>-A8980BQDFZDD

4

6 回答 6

5

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

from string import digits

print('123abc382'.rstrip(digits))
于 2019-12-24T09:44:06.240 回答
3
In [36]: myStr = '-text=A8980BQDFZDD1701209.3'

In [37]: print '-'+myStr.rpartition('=')[-1].rstrip('1234567890.')
-A8980BQDFZDD
于 2012-11-04T02:57:33.653 回答
0
print '123abc382'.rstrip('1234567890')
于 2012-11-04T01:06:46.767 回答
0
print 'text=A8980BQDFZDD1701209.3'.rstrip('1234567890.')[5:]

会做所有需要的。然而,最后的切片有点像黑客。

于 2012-11-04T01:10:21.303 回答
0

第一步是了解字符串正在编码哪些信息,以及在阅读时如何对其进行解码。这会告诉您数据中的模式是什么,这些模式将决定您将如何操作字符串以在 Python 中提取信息。

如果您只需要丢失最后几个数字,那么您可以rstrip很容易地丢失它们。这是假设您想将“-text =”更改为“-”,正如您在问题中暗示的那样:

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

这是一种有潜在风险的方法,因为它还假设数字后缀中永远不会包含任何字母字符,并且您要保留的一半永远不会以您传递给的字符结尾rstrip。如果您的数据并非总是如此,则此解决方案会给您带来不好的结果,您需要找到更准确的模式。

例如,如果 'keep' 部分的长度始终为12 个字符,您可能希望通过将示例的第 3 行替换为以下内容来获取字符串切片:

output = '-' + text[:12]

但最终,这取决于这些字符串是什么,以及首先定义不同部分如何形成的规则。

于 2012-11-04T02:01:11.923 回答
-2

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

于 2012-11-04T01:06:48.743 回答