用正则表达式查找python代码片段

时间:2014-02-12 19:48:30

标签: python regex

我有一个python文件,看起来像这样:

class Hello():
    something = 0
    someotherthing = 2

class Heythere():
    whatsthis()
    def whatsthis():
        dosomething=0

class Anotherclass():
    imavar=2
    whatsup='?'

....

它持续了一段时间,有很多课程。我想使用正则表达式将每个类捕获到一个列表中。我总是希望正则表达式开始在“类”中捕获字符串,并且总是希望它在一行中有两个换行符的位置停止。这是我尝试过的,无处可去。我根本不熟悉正则表达式语法,所以也许我做错了:

import re

r = open('python.py','r').read()
x = re.findall(r'(class?)\n\n', r)

x总是返回一个空列表[]

我不知道我在做错了什么,但我相当肯定我的语法完全没了。我只是......不知道从哪里开始

2 个答案:

答案 0 :(得分:1)

此正则表达式将捕获您的群组

((?:.*\n){1,5}.*)\n\n

演示:http://rubular.com/r/MBLLb2m8WG

答案 1 :(得分:0)

这就像你想要的一样吗?

import re
r = open('python.py','r').read()
x = re.findall(r'class .+', r)