Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
我在这里阅读“浏览器的工作原理”文章:浏览器的工作原理(这是一本很棒的书。)
但有一次,他们提到这是定义整数的语法规则:
INTEGER :0|[1-9][0-9]*
是否完全一样(并且更简单)编写:
INTEGER :[1-9]*[0-9]
我想不出一个不满足两条规则的案例,也想不出为什么首选第一条规则的原因。
是否有理由包含一个简单的基本案例(例如0),还是只是迂腐?
0
这两个表达式是不同的:第一个将采取101,但第二个不会。书中的表达式非常擅长匹配整数,同时不允许前导零。
101
它们不一样,因为我的简化只能包括一个零,并且只有它是一个尾随零。例如。这种情况与简化规则不匹配: