python - 使用正则表达式在 Python 中获取两个字符串之间的 channel

标签 python

我想解析 .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/

相关文章:

python - 准备用于多标签分类的训练数据集

python - 什么是 __del__ 方法以及如何调用它?

python - 用 sklearn 解码 pandas 数据帧

python - 如何在嵌套函数中更改嵌套函数的变量

Python Web Socket 打开后立即关闭

python - 在本地集群上运行 dask 时超时 OSError

python - 如何将页面方向更改为横向?

python - 按两列中的值生成行

python - Kivy:在所有屏幕上显示操作栏

python - 压平多文件 python 程序以进行分发的好方法?