SPUG: RE / Split Question
Asim Jalis
asim at pair.com
Wed Jul 30 21:03:16 CDT 2003
On Wed, Jul 30, 2003 at 06:09:41PM -0700, C.J. Collier wrote:
> $ perl -e '$blob = "425 501 sttlwa01t 425 712 sttlwa01t tacwa02t 425 337
> tacwa02t"; @matches = $blob =~ /(\d+ \d+(?: \D[\w\d]+)+)/g;
> print(join("\n", @matches), "\n");'
> 425 501 sttlwa01t
> 425 712 sttlwa01t tacwa02t
> 425 337 tacwa02t
>
> Ha. Please, someone make it look prettier.
How about:
$ perl -e '
$blob = "425 501 sttlwa01t 425 712 sttlwa01t tacwa02t 425 337 tacwa02t";
$_ = $blob ; s/(\D) (\d)/$1\n$2/g ; print '
425 501 sttlwa01t
425 712 sttlwa01t tacwa02t
425 337 tacwa02t
If blob is coming from outside the program, the Perl could be
even slimmer, as:
$ echo "425 501 sttlwa01t 425 712 sttlwa01t tacwa02t 425 337 tacwa02t" |
perl -pe 's/(\D) (\d)/$1\n$2/g'
--
Asim
More information about the spug-list
mailing list