擅长:python、mysql、java
<p>正如@MBO所说,备选方案是按照编写顺序进行测试的,一旦其中一个匹配,重新生成的引擎将继续进行后续操作。<br/>
这种行为在类似Perl的RE引擎中很常见,最终可以追溯到1985年Bell实验室为第8版Unix设计的RE库。<br/>
注意,posix2(从1991年开始)有另一个定义,坚持对整个RE进行最左边最长的匹配,并遵循这个定义,依次对每个子表达式(按词汇顺序)。在posix2中,备选方案的顺序并不重要。你知道吗</p>
<p>然而,行为上的差异通常是:不相关的(如果你只是在测试),被回溯掩盖的(如果较短的匹配导致其余的re失败),或者被其余的re匹配较长的匹配“应该有的”部分补偿的——所以大多数人都没有意识到。你知道吗</p>