我有一个包含文件文件夹的数据库。我设法读取文件并获得包含montage单词的特定行.
montage = 0, FP1-F7: EEG FP1-REF -- EEG F7-REF
montage = 1, F7-T3: EEG F7-REF -- EEG T3-REF
montage = 2, T3-T5: EEG T3-REF -- EEG T5-REF
montage = 3, T5-O1: EEG T5-REF -- EEG O1-REF
现在,我希望能够提取逗号和双点之间的内容(即FP1-F7,F7-T3,.)但我不知道怎么做?
此外,为什么print命令显示行之间有一个“空格”(不是下面显示的而是真实的)?
发布于 2018-08-06 10:14:15
获取您想要的标记(注意:这适用于您提供的示例,如果在显示的点之前还有其他逗号或冒号,这将无法工作):
def parse_line(line):
start = line.find(',')
end = line.find(':')
return line[start+1:end].strip()你也可以用regex来做这件事,但是针对这个场景,IMO是过火了。
那么,获取标记列表就可以通过列表理解来完成:
tokens = [parse_line(l) for l in lines]其中lines是要解析的行列表(或者,如果您正在读取文本文件,文件对象本身)
发布于 2018-08-06 10:13:00
使用Regex。
import re
s = """montage = 0, FP1-F7: EEG FP1-REF -- EEG F7-REF
montage = 1, F7-T3: EEG F7-REF -- EEG T3-REF
montage = 2, T3-T5: EEG T3-REF -- EEG T5-REF
montage = 3, T5-O1: EEG T5-REF -- EEG O1-REF """
for i in s.splitlines():
m = re.search(r",(.*?):", i) #Get content between , and :
if m:
print(m.group(1).strip())输出:
FP1-F7
F7-T3
T3-T5
T5-O1https://stackoverflow.com/questions/51705159
复制相似问题