我想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
uj5u.com熱心網友回復:
在elif你有if,它需要一個條件,你不提供,它應該是
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
如果代碼執行多次,最好編譯一次正則運算式
在檔案中全域定義編譯好的正則運算式
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
uj5u.com熱心網友回復:
對于 elif 陳述句,您必須提供條件。例如:
if a == 1:
do_a()
elif a == 2:
do_b()
else:
do_c()
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/463110.html
