我有一个变量文本,其值如下所示,我需要尾随数字条,是否有 python 内置函数可以做到这一点..如果没有,请建议如何在 python 中完成
例如-text=A8980BQDFZDD1701209.3
=>-A8980BQDFZDD
我有一个变量文本,其值如下所示,我需要尾随数字条,是否有 python 内置函数可以做到这一点..如果没有,请建议如何在 python 中完成
例如-text=A8980BQDFZDD1701209.3
=>-A8980BQDFZDD
为了完整起见,python3 中的这种语法怎么样?
from string import digits
print('123abc382'.rstrip(digits))
In [36]: myStr = '-text=A8980BQDFZDD1701209.3'
In [37]: print '-'+myStr.rpartition('=')[-1].rstrip('1234567890.')
-A8980BQDFZDD
print '123abc382'.rstrip('1234567890')
print 'text=A8980BQDFZDD1701209.3'.rstrip('1234567890.')[5:]
会做所有需要的。然而,最后的切片有点像黑客。
第一步是了解字符串正在编码哪些信息,以及在阅读时如何对其进行解码。这会告诉您数据中的模式是什么,这些模式将决定您将如何操作字符串以在 Python 中提取信息。
如果您只需要丢失最后几个数字,那么您可以rstrip
很容易地丢失它们。这是假设您想将“-text =”更改为“-”,正如您在问题中暗示的那样:
input = '-text=A8980BQDFZDD1701209.3'
text = input.split('=')[1]
output = '-' + text.rstrip('1234567890.')
这是一种有潜在风险的方法,因为它还假设数字后缀中永远不会包含任何字母字符,并且您要保留的一半永远不会以您传递给的字符结尾rstrip
。如果您的数据并非总是如此,则此解决方案会给您带来不好的结果,您需要找到更准确的模式。
例如,如果 'keep' 部分的长度始终为12 个字符,您可能希望通过将示例的第 3 行替换为以下内容来获取字符串切片:
output = '-' + text[:12]
但最终,这取决于这些字符串是什么,以及首先定义不同部分如何形成的规则。
您可以使用rstrip
. 检查python文档。