2010-03-25 62 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在当前位置后面(在左边)寻找匹配字符串。

该向前查找字符串在当前位置之前(右侧)的字符串中匹配。