这种正则表达式的简化是否正确?

时间:2012-11-29 01:56:47

标签: regex

我正在阅读这里的“浏览器工作原理”一文:How Browsers Work(这是一本很棒的读物。)

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

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

是否,或者不是,完全相同(和更简单)写:

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

我想不出一个既不满足这两条规则又不满足第一条规则的理由。

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

2 个答案:

答案 0 :(得分:2)

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

答案 1 :(得分:2)

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

101
相关问题