3

我在这里阅读“浏览器的工作原理”文章:浏览器的工作原理(这是一本很棒的书。)

但有一次,他们提到这是定义整数的语法规则:

INTEGER :0|[1-9][0-9]*

是否完全一样(并且更简单)编写:

INTEGER :[1-9]*[0-9]

我想不出一个不满足两条规则的案例,也想不出为什么首选第一条规则的原因。

是否有理由包含一个简单的基本案例(例如0),还是只是迂腐?

4

2 回答 2

2

这两个表达式是不同的:第一个将采取101,但第二个不会。书中的表达式非常擅长匹配整数,同时不允许前导零。

于 2012-11-29T02:00:40.440 回答
2

它们不一样,因为我的简化只能包括一个零,并且只有它是一个尾随零。例如。这种情况与简化规则不匹配:

101
于 2012-11-29T02:01:11.007 回答