elif: SyntaxError: invalid syntax
elif: SyntaxError: invalid syntax
我想 re.search
在 if 语句中,但无论标识如何,都会出现语法错误。是因为elif:
没有条件吗?
fr = re.compile(r'(long_regex)', flags = re.DOTALL | re.MULTILINE)
fra = fr.search(text)
if fra:
result = fra.group(5)
elif:
f3 = re.compile(r'(some_regex_1)', flags = re.DOTALL | re.MULTILINE)
fr3 = f3.search(text)
result = fr3.group(5)
elif:
f4 = re.compile(r'(some_regex)', flags = re.DOTALL | re.MULTILINE)
fr4 = f4.search(text)
result = fr4.group(4)
else:
result = None
错误信息
Input In [102]
elif:
^
SyntaxError: invalid syntax
对于 elif 语句,您必须提供条件。例如:
if a == 1:
do_a()
elif a == 2:
do_b()
else:
do_c()
在elif
你有if
,它需要一个条件,你提供none,应该是
if condition1:
pass
elif condition2:
pass
使用海象运算符(自 py3.8 起)你可以改进你的代码看起来像
if fra := re.search(r'(long_regex)', text, flags=re.DOTALL | re.MULTILINE):
result = fra.group(5)
elif fr3 := re.search(r'(some_regex_1)', text, flags=re.DOTALL | re.MULTILINE):
result = fr3.group(5)
elif fr4 := re.search(r'(some_regex)', text, flags=re.DOTALL | re.MULTILINE):
result = fr4.group(4)
else:
result = None
如果多次执行代码,最好只编译一次regex
在文件中全局定义编译后的正则表达式
F2 = re.compile(r'(long_regex)', flags=re.DOTALL | re.MULTILINE)
F3 = re.compile(r'(some_regex_1)', flags=re.DOTALL | re.MULTILINE)
F4 = re.compile(r'(some_regex)', flags=re.DOTALL | re.MULTILINE)
然后在你的方法中使用它
if fra := F2.search(text):
result = fra.group(5)
elif fr3 := F3.search(text):
result = fr3.group(5)
elif fr4 := F4.search(text):
result = fr4.group(4)
else:
result = None
我想 re.search
在 if 语句中,但无论标识如何,都会出现语法错误。是因为elif:
没有条件吗?
fr = re.compile(r'(long_regex)', flags = re.DOTALL | re.MULTILINE)
fra = fr.search(text)
if fra:
result = fra.group(5)
elif:
f3 = re.compile(r'(some_regex_1)', flags = re.DOTALL | re.MULTILINE)
fr3 = f3.search(text)
result = fr3.group(5)
elif:
f4 = re.compile(r'(some_regex)', flags = re.DOTALL | re.MULTILINE)
fr4 = f4.search(text)
result = fr4.group(4)
else:
result = None
错误信息
Input In [102]
elif:
^
SyntaxError: invalid syntax
对于 elif 语句,您必须提供条件。例如:
if a == 1:
do_a()
elif a == 2:
do_b()
else:
do_c()
在elif
你有if
,它需要一个条件,你提供none,应该是
if condition1:
pass
elif condition2:
pass
使用海象运算符(自 py3.8 起)你可以改进你的代码看起来像
if fra := re.search(r'(long_regex)', text, flags=re.DOTALL | re.MULTILINE):
result = fra.group(5)
elif fr3 := re.search(r'(some_regex_1)', text, flags=re.DOTALL | re.MULTILINE):
result = fr3.group(5)
elif fr4 := re.search(r'(some_regex)', text, flags=re.DOTALL | re.MULTILINE):
result = fr4.group(4)
else:
result = None
如果多次执行代码,最好只编译一次regex
在文件中全局定义编译后的正则表达式
F2 = re.compile(r'(long_regex)', flags=re.DOTALL | re.MULTILINE)
F3 = re.compile(r'(some_regex_1)', flags=re.DOTALL | re.MULTILINE)
F4 = re.compile(r'(some_regex)', flags=re.DOTALL | re.MULTILINE)
然后在你的方法中使用它
if fra := F2.search(text):
result = fra.group(5)
elif fr3 := F3.search(text):
result = fr3.group(5)
elif fr4 := F4.search(text):
result = fr4.group(4)
else:
result = None