在python中提取字符串的一部分有限制

2024-05-21 03:05:03 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个字符串输出,如下所示:

Distance AAAB: ,0.13634,0.13700,0.00080,0.00080,-0.00066,.00001,
Distance AAAC: ,0.12617,0.12680,0.00080,0.00080,-0.00063,,
Distance AAAD: ,0.17045,0.16990,0.00080,0.00080,0.00055,,
Distance AAAE: ,0.09330,0.09320,0.00080,0.00080,0.00010,,
Distance AAAF: ,0.21048,0.21100,0.00080,0.00080,-0.00052,,
Distance AAAG: ,0.02518,0.02540,0.00040,0.00040,-0.00022,,
Distance AAAH: ,0.11404,0.11450,0.00120,0.00110,-0.00046,,
Distance AAAI: ,0.10811,0.10860,0.00080,0.00070,-0.00049,,
Distance AAAJ: ,0.02430,0.02400,0.00200,0.00200,0.00030,,
Distance AAAK: ,0.09449,0.09400,0.00200,0.00100,0.00049,,
Distance AAAL: ,0.07689,0.07660,0.00050,0.00050,0.00029,

我想做的是从这个块中提取一组特定的数据,例如仅距离AAAH,如下所示:

Distance AAAH: ,0.11404,0.11450,0.00120,0.00110,-0.00046,,

测量总是从距离AAA*开始:恒星是唯一会改变的字符。你知道吗

并发症: 这需要是通用的,因为我有很多不同的数据集,所以距离AAAH可能并不总是跟在距离AAAI后面或者跟在距离AAAG前面,因为不同项目的测量值是不同的。我也不能依赖于.len(),因为最后一次测量有时可以是空白的(如距离AAAH),也可以是填充的(如距离AAAB)。我想我不能使用.find(),因为我需要所有跟在距离后面的数字。你知道吗

我还是个新手,我尽了最大努力找到了一个类似于这个问题的解决方案,但运气不太好。你知道吗


Tags: 数据字符串距离distanceaaahaaacaaabaaak
2条回答

您可以使用re模块。做一个函数应该很方便。你知道吗

import re
def SearchDistance(pattern,text):
    pattern = pattern.replace(' ','\s')
    print re.findall(r'{0}.+'.format(pattern),a)

SearchDistance('Distance AAAH',a)

输出:

['Distance AAAH: ,0.11404,0.11450,0.00120,0.00110,-0.00046,,']

您可以通过以下脚本搜索文本:

#fullText = YOUR STRING
text = fullText.splitlines()
for line in text:
    if line.startswith('Distance AAAH:'):
        print line

输出:Distance AAAH: ,0.11404,0.11450,0.00120,0.00110,-0.00046,,

相关问题 更多 >