Beefy Boxes and Bandwidth Generously Provided by pair Networks Frank
Problems? Is your data what you think it is?
 
PerlMonks  

Re: Complex Splitting

by fenLisesi (Priest)
on Feb 06, 2007 at 12:53 UTC ( [id://598599]=note: print w/replies, xml ) Need Help??

This is an archived low-energy page for bots and other anonmyous visitors. Please sign up if you are a human and want to interact.


in reply to Complex Splitting

Here is another attempt at expanding a one-liner into a big script, this one using a canned /regexp?/i:
use strict; use warnings; use Regexp::Common qw(balanced); my @streams = (qw( [ABC][DEF][HIJ] ABC[DEF]HI[JK][LMNO]PQ [A][B]C[DEF]HI[JK][LMNO]PQ [A][B]C[DEF]HI[JK][LMNO]P[Q] [ABCDEFHIJKLMNOPQ] ABCDEF ), q()); my $PATTERN = $RE{balanced}{-parens=>'[]'}; for my $input (@streams) { print qq($input => ); my @pieces = (); while ($input =~ s/(\w*)($PATTERN)//) { my ($prematch, $match) = ($1, $2); push @pieces, split //, $prematch; push @pieces, $1 if $match =~ /(\w+)/; } push @pieces, split //, $input if length $input; printf qq(%s\n), join qq( ), @pieces; } __END__
which prints:
[ABC][DEF][HIJ] => ABC DEF HIJ ABC[DEF]HI[JK][LMNO]PQ => A B C DEF H I JK LMNO P Q [A][B]C[DEF]HI[JK][LMNO]PQ => A B C DEF H I JK LMNO P Q [A][B]C[DEF]HI[JK][LMNO]P[Q] => A B C DEF H I JK LMNO P Q [ABCDEFHIJKLMNOPQ] => ABCDEFHIJKLMNOPQ ABCDEF => A B C D E F =>
Cheers.

Log In?
Username:
Password:

What's my password?
Create A New User
Domain Nodelet?
Node Status?
node history
Node Type: note [id://598599]
help
Sections?
Information?
Find Nodes?
Leftovers?
    Notices?
    hippoepoptai's answer Re: how do I set a cookie and redirect was blessed by hippo!
    erzuuliAnonymous Monks are no longer allowed to use Super Search, due to an excessive use of this resource by robots.