Beefy Boxes and Bandwidth Generously Provided by pair Networks
We don't bite newbies here... much

Answer: How do I split a string on highly structured/nested data?

by merlyn (Sage)
on Aug 17, 2000 at 10:09 UTC ( #28270=categorized answer: print w/replies, xml ) Need Help??

Q&A > regular expressions > How do I split a string on highly structured/nested data? - Answer contributed by merlyn

lhoward's grammar seems unnecessarily complicated. Let's simplify it a bit, as well as grabbing what is needed for the answer (the split items):
use Parse::RecDescent; my $teststr="a,b,op2(c,d),op3(e,op4(f,g))"; my $grammar = q { startrule: list list: <leftop: item ',' item> item: word '(' list ')' <commit> { "$item[1](".join(",",@{$item[3]})." +)" } | word word: /\w+/ }; my $parser = new Parse::RecDescent ($grammar) or die "Bad grammar!\n"; + defined (my $result = $parser->startrule($teststr)) or print "Bad text +!\n"; print map "<<< $_ >>>\n", @$result;
Yes, there it is. $result is an array ref of the split-apart items.

Log In?

What's my password?
Create A New User
[Veltro]: usemodperl This question was asked in 2011 https://stackoverf 8017508/solutions- to-convert-http- traffic-to-https- proxy-relay

How do I use this? | Other CB clients
Other Users?
Others chanting in the Monastery: (6)
As of 2018-06-24 17:28 GMT
Find Nodes?
    Voting Booth?
    Should cpanminus be part of the standard Perl release?

    Results (126 votes). Check out past polls.