split中的空串

把这个问题搞清楚了

发信人: rogerz (章鱼·潮起潮落), 信区: Perl
标 题: Re: 如何理解/ */和/ +/???
发信站: BBS 水木清华站 (Tue Apr 13 18:43:05 2004), 转信

不知道split的实现方式是怎样的。

对于空字串的产生只看到这样一句相关的话
Empty leading (or trailing) fields are produced when there are positive width ma
tches at the beginning (or end) of the string; a zero-width match at the beginni
ng (or end) of the string does not produce an empty field.

中间产生的空字串是否可以解释为split实际上是个递归解析字符串的过程?(或迭代?)
对于split(/b*?/,"abcc"),由于是非贪婪方式,第一个匹配成功的地方是"a"后跟的空串,
截去已解析部分,继续对"bcc"进行split,这样"","c","c"的分割结果就可以正常解释了

而对于split(/b*/,"abcc");由于是贪婪方式,第一个匹配成功的地方是"ab",对余下的"c
c"执行split,就不会产生空串了。

你可能感兴趣的:(C++,c,C#,perl,bbs)