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