首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在Python中读取字符串的一部分?

如何在Python中读取字符串的一部分?
EN

Stack Overflow用户
提问于 2018-08-06 10:07:15
回答 2查看 73关注 0票数 1

我有一个包含文件文件夹的数据库。我设法读取文件并获得包含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-F7F7-T3,.)但我不知道怎么做?

此外,为什么print命令显示行之间有一个“空格”(不是下面显示的而是真实的)?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2018-08-06 10:14:15

获取您想要的标记(注意:这适用于您提供的示例,如果在显示的点之前还有其他逗号或冒号,这将无法工作):

代码语言:javascript
复制
def parse_line(line):
  start = line.find(',')
  end = line.find(':')
  return line[start+1:end].strip()

你也可以用regex来做这件事,但是针对这个场景,IMO是过火了。

那么,获取标记列表就可以通过列表理解来完成:

代码语言:javascript
复制
tokens = [parse_line(l) for l in lines]

其中lines是要解析的行列表(或者,如果您正在读取文本文件,文件对象本身)

票数 1
EN

Stack Overflow用户

发布于 2018-08-06 10:13:00

使用Regex。

代码语言:javascript
复制
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())

输出:

代码语言:javascript
复制
FP1-F7
F7-T3
T3-T5
T5-O1
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51705159

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档