我正在尝试为“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)
答案 0 :(得分:-2)
只是为了好玩
\s*def\s+[^\(]+\([^\)]*(?:(?:\([^\)]*?\))[^\)]*)*\):
<强>解释强>
^
:根据多线模式开始字符串或起始线
\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)