2
爲了檢查是否一個字符串是一個有效的正則表達式我用下面的代碼:有效的正則表達式
import re
try:
re.compile('(0*|2*)')
is_valid = True
print(is_valid)
except re.error:
is_valid = False
print(is_valid)
我的問題是如何看re.compile('(0*|2*)')
檢查,如果在字符串中傳遞有效的正則表達式。換句話說,它在後臺對字符串做了些什麼來檢查它是否有效。我認爲這是這樣做也許串轉向到一個列表,例如在字符串「(0 * | 2 *)」作爲一個名單將是:
['(', '0', '*', '|', '2', '*', ')']
,然後檢查是否第一和最後的項目在組合時是有效的,如果它移動到第二個項目和第二個最後項目並重復該過程,但是情況並非如此,因爲它會在* 2時返回false。
如果任何人都可以解釋算法/它是如何檢查以查看傳入的字符串是否是一個有效的僞代碼正則表達式,至少會真正讚賞。
看看'sre_compile.py'在你的Python安裝。 – metatoaster