我想解析 .txt 文件中的所有函数。它看起来像这样:
def
test
end
def
hello
end
def
world
end
所以,我会得到以下返回:[test, hello, world]
这是我尝试过的,但我没有得到任何返回:
r = re.findall('def(.*?)end', doc)
print r
最佳答案
您必须使用 re.DOTALL
允许 .
也匹配换行符的标志(因为您的 doc
是多行的)。
如果您只想要外部 def/end block (即忽略缩进 block ),您还可以在正则表达式中使用“^def”和“^end”,在这种情况下,您还需要使用 re .MULTILINE
标志,允许“^”和“$”匹配行的开始/结束(与字符串的开始/结束相对)。
re.findall('^def(.*?)^end',doc,re.DOTALL|re.MULTILINE)
关于python - 使用正则表达式在 Python 中获取两个字符串之间的 channel ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9494280/