2012-01-26 4 views
3

一致:perlの正規表現期間は、ゼロ長の文字たとえば

$ perl -pe 's/(.)\G/{$1}/g' 
abcd 

と結果は:(。)

{}{a}{b}{c}{d} 

マッチがゼロ長最初の期間です。これはバグか機能ですか?

+1

どのperlのバージョンを使用していますか? – pavel

+0

@pavel:これはi686-cygwin-thread-multi-64intのために作られたperl、v5.10.1(*)です。 – qpfjvn

答えて

7

/(.)\G/gは決して一致しないので、結果は "abcd"です。の前に、の前に、現在の位置から開始します。 "abcd"のs/\G(.)/{$1}/gは "{a} {b} {c} {d}"を生成します。

+0

Hmm ..どのバージョンのperlを使いますか? – qpfjvn

+0

@ qpfjvn 5.8.8,5.12.3,5.14.1と同じ結果 – hobbs

+0

ここに5.10.1のコピーがあり、これは '{} {a} {b} {c} {d}'を返します。これはおそらく5.10.1 –