首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从字符串中提取行的列表

从字符串中提取行的列表
EN

Stack Overflow用户
提问于 2016-11-22 08:08:45
回答 2查看 74关注 0票数 0
代码语言:javascript
复制
Beginning

Line 2
Line 3
Line 4
Line 5
Line 6
End

从2号线到6号线。不能拯救我的灵魂。A是我正在搜索的保存的字符串。

代码语言:javascript
复制
b = re.findall(r'Beginning(.*?)End', a)

我知道这是因为换行符的缘故,但是我该如何检测并继续使用换行符呢?我试过了,但我不确定我应该如何使用MULTILINE或DOTALL。什么都没变。

我如何让它把第2行到第6行放在b中?

要添加,这将发生多次通过相同的文件,我需要执行这种搜索和提取技术。我没有其他简单的方法可以做到这一点,因为需要进一步查看第2-6行中的信息,以提取将放入csv文件中的数据。由于一些数据包含小时,而一些数据不包含小时,也就是不可用,因此我需要能够区分这两种情况。

EN

回答 2

Stack Overflow用户

发布于 2016-11-22 08:12:39

代码语言:javascript
复制
string = """Beginning

Line 2
Line 3
Line 4
Line 5
Line 6
End
"""

lines = string.splitlines()
answer = []
flag = False
for line in lines:
    line = line.strip()
    if not line: continue
    if line == "Beginning":
        flag = True
        continue
    if line == "End": flag = False
    if not flag: continue
    answer.append(line)

输出:

代码语言:javascript
复制
In [209]: answer
Out[209]: ['Line 2', 'Line 3', 'Line 4', 'Line 5', 'Line 6']
票数 0
EN

Stack Overflow用户

发布于 2018-07-06 12:37:48

您可以创建一个函数,该函数接受一个多行字符串,然后是一个开始行和一个结束行。

代码语言:javascript
复制
def Function(string, starting_line, ending_line):
    if "\n" in string: #Checks for whether or not string is mult-line
        pass
    else:
        return "The string given isn't a multiline string!" #If string isn't multiline, then Function returns a string explaining that string isn't a multi-line string
    if ending_line < starting_line: #Checks if ending_line < starting_line
        return "ending_line is greater than starting_line!" #If ending_line < starting_line, then Function returns a string explaining that ending_line > starting_line
    array = [] #Defines an array
    for i in range(len(string)): #Loops through len(string)
        if list(string)[i] = "\n": #Checks whether list(string)[i] = a new line
            array.append(i) #Appends i to array
    return string[array[starting_line - 1]::array[ending_line - 1]]
print(Function(a, 3, 7))

此代码应返回:

代码语言:javascript
复制
Line 1
Line 2
Line 3
Line 4
Line 5
Line 6
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/40731719

复制
相关文章

相似问题

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