in reply to Split a string based on change of character
I've tried this one: m/((?<=.))(?!\1)/ which should be "a position before which there is a character, and after that a different character", but it doesn't work.
Can anybody tell me why this doesn't match the string 'aaabbbc'?
Update: Zoffix told me on IRC that the right thing would be m/(?<=(.))(?!\1)/ (because the assertion is zero-width), however that doesn't work in split as well, because it returns the captured character:
$ perl -MData::Dumper -wle '$Data::Dumper::Indent=0; $_="aaabbc"; prin +t Dumper([split m/(?<=(.))(?!\1)/]);' $VAR1 = ['aaa','a','bb','b','c','c'];
This way you had to discard every second item of the returned list - not pretty either ;-)
|
---|
Replies are listed 'Best First'. | |
---|---|
Re^2: Split a string based on change of character
by Skeeve (Parson) on Jul 28, 2007 at 13:16 UTC | |
by ikegami (Patriarch) on Jul 28, 2007 at 15:02 UTC | |
by Skeeve (Parson) on Jul 28, 2007 at 15:28 UTC | |
by eyepopslikeamosquito (Archbishop) on Jul 29, 2007 at 02:43 UTC | |
by eyepopslikeamosquito (Archbishop) on Jul 28, 2007 at 23:47 UTC | |
Re^2: Split a string based on change of character
by Anonymous Monk on Jul 28, 2007 at 08:37 UTC | |
by Anonymous Monk on Jul 28, 2007 at 08:43 UTC |