给定一个输入:
line = " say hi /* comment"
和一个正则表达式:
regex = re.compile(r'\s*(?P<command>.*?)/[/*]')
result = regex.search(line)
print(result.group('command'))
这将成功打印say hi
。
但是,将最后一部分切换到可选组:
regex = re.compile(r'\s*(?P<command>.*?)(/[/*])?')
现在不打印任何东西。不是正则表达式根本不匹配,因为result
is not None
。
为什么当正则表达式不是可选时它可以工作,但当它是可选时它会停止工作,我将如何解决它?