我在這裏讀了「瀏覽器的工作」的文章:How Browsers Work(這是一個偉大的閱讀。)這個正則表達式簡化是否正確?
但在一個點上,他們提到這一點作爲他們的語法規則定義一個整數:
INTEGER :0|[1-9][0-9]*
是嗎,還是不完全一樣(和更簡單)來寫:
INTEGER :[1-9]*[0-9]
我想不出一個情況是不符合這兩個規則,也沒有理由的第一條規則是首選。
是否有理由包含簡單的基本情況(如0
),還是僅僅是迂迴?
我在這裏讀了「瀏覽器的工作」的文章:How Browsers Work(這是一個偉大的閱讀。)這個正則表達式簡化是否正確?
但在一個點上,他們提到這一點作爲他們的語法規則定義一個整數:
INTEGER :0|[1-9][0-9]*
是嗎,還是不完全一樣(和更簡單)來寫:
INTEGER :[1-9]*[0-9]
我想不出一個情況是不符合這兩個規則,也沒有理由的第一條規則是首選。
是否有理由包含簡單的基本情況(如0
),還是僅僅是迂迴?
這兩個表達式是不同的:第一個將採取101
,但第二個不會。書中的表達式在匹配整數時相當不錯,但不允許前導零。
它們是不一樣的,因爲我的簡化只能包含一個零,並且只有它是一個尾隨零。例如。這種情況與簡化規則不匹配:
101
這很有趣 - 我們都選擇了'101'作爲例子:) – dasblinkenlight
您將接受打我30秒,並獲得一個恭喜upvote以某種方式挑選相同的測試輸入。 :) –