2011-02-03 16 views
1

これらは同じように動作しないのはなぜですか?Perlの正規表現を使って文字列を分割する

perl -e '$x = "12aba34ba5"; $, = ", "; print split /[ab]/, $x;' 
12, , , 34, , 5 

perl -e '$x = "12aba34ba5"; $, = ", "; print split /(a|b)/, $x;' 
12, a, , b, , a, 34, b, , a, 5 
+0

2番目の分割でグループ化しています。 '/ [ab] /'を '/([ab])/'にグループ化すると、同じ結果が得られます。もちろん、 –

答えて

2

これはperldoc splitに記載されている:

パターンは括弧、 追加のリスト要素を デリミタ各マッチングストリングから 作成され含まれている場合。

(?:a|b)は、逆参照をしたくない場合に使用できます。

+0

ああ。ありがとう。 – aidan

関連する問題