2010-03-25 65 views

回答

0

這是違反直覺的,因爲沒有共識,無論時間是從前到後還是從後到前,而你只是有着不同的思維方式。

在英語中,我們說「離開背後過去」,但「過去」是發生的事情「以前」(前=前)。

+0

這是最可以接受的答案!謝謝! – user198729 2010-03-25 09:31:14

+0

但以這種方式命名它仍然很奇怪 – user198729 2010-03-25 09:33:51

3

因爲正則表達式引擎會從頭到尾使用字符。所以,「前方」是朝着弦的盡頭,而「​​後面」是朝着起點。

...xyz12345678abc... 
behind --->---------- ahead 

(?!\d)是斷言存在\d{8}之後,是十進制數,因此正則表達式引擎需要在方向檢查字符的字符串的結束,即先行

類似的後視。

+0

對不起,但這似乎並沒有解釋爲什麼它必須是這樣的? – user198729 2010-03-25 09:27:31

+0

@user:因爲你不會倒退。 (http://en.wikipedia.org/wiki/Backward_running) – kennytm 2010-03-25 09:41:48

+0

但是爲什麼正則表達式在這種情況下選擇向後走?是否有一些好處? – user198729 2010-03-25 09:44:55

3

他們是根據他們的所作所爲命名的,而不是你在特定表達中如何使用它。

lookbehind在當前位置後面(在左邊)尋找匹配字符串。

該向前查找字符串在當前位置之前(右側)的字符串中匹配。