正则表达式为“def”

时间:2016-04-15 03:32:52

标签: python regex

我正在尝试为“def”找到正则表达式 它应该如下工作:

def h():
def f(a=1):
def g(a=-2):
def x(_sad,sda_,m=+3, n=-2):

无效的情况:

def (m, x=y) 

我做了什么:

^def\s\w+\((\w\,)*(\w+=?\+?\-?\d+\,)*(\w)*\):$

但是,它没有通过案例“def f(a=1):”和“def g(a=-2):

我做错了什么?

我的目标是完成这些案件:

def h():
def f(a=1):
def g(a=-2):
def x(_sad,sda_,m=+3, n=-2):

并且不履行这些情况:     def(m,x = y)

1 个答案:

答案 0 :(得分:-2)

只是为了好玩

\s*def\s+[^\(]+\([^\)]*(?:(?:\([^\)]*?\))[^\)]*)*\):

Regex demo

<强>解释
^:根据多线模式开始字符串或起始线 \s:“空格字符”:空格,制表符,换行符,回车符,垂直制表符sample
+:一个或多个sample \w:“单词字符”:ASCII字母,数字或下划线sample
*:零次或多次sample

输入:

def h():
def f(a=1):
def g(a=-2):
def x(_sad,sda_,m=+3, n=-2):
def (m, x=y) 
def name(database_name):
    def name(name1, name2):
        def name(name1, attr=value):
    def name(name1, default='', length=default, **value):
    def name(name1, default='', length=(0, 999), **kwargs):

匹配除def (m, x=y)

以外的所有内容