### Re^2: Regex problem while parsing tagged, hierarchical data

by Mago (Parson)
 on Sep 19, 2006 at 11:25 UTC ( #573688=note: print w/replies, xml ) Need Help??

```
perl -pi -e 'if(/<level1(\sid=\".*\")>/){\$a=\$1};if(/<level2>/){\$_=~s/(
+<level2)>/\$1\$a>/g}' input

or

perl -pi -e '\$a=m/(<level([12]))(\sid=\".*\")*>/;if(\$a){\$2==1?\$b=\$3:\$_
+=~s/(\$1)/\$1\$b/g;}' input

or

perl -pi -e '\$a=m/(<level(1|2))(\sid=\".*\")*>/;\$a?\$2==1?\$b=\$3:\$_=~s/(
+\$1)/\$1\$b/g:next;' input

or

perl -pi -e '\$a=m;(<level(1|2))(\sid=\".*\")*>;;\$a?\$2==1?\$b=\$3:\$_=~s;(
+\$1);\$1\$b;g:1;' input

or golf by monsieur_champs
```
perl -pi -e 'm;(<level(1|2))(\sid=\".*\")*>;;\$&?\$2==1?\$b=\$3:\$_=~s;(\$1)
+;\$1\$b;g:1;' input

sorry =) -1 char
```
perl -pi -e 'm;(<level(1|2))(\sid=\".*\")*>;;\$&?\$2==1?\$b=\$3:\$_=~s;(\$1)
+;\$1\$b;g:1' input

insane !!! 33 chars
```
perl -pi -e '/l1(\sid=.*)>/?\$a=\$1:s;l2>;l2\$a>;' input

=)

Mago
mago@rio.pm.org

Replies are listed 'Best First'.
Re^3: Regex problem while parsing tagged, hierarchical data
by smokemachine (Hermit) on Sep 19, 2006 at 12:53 UTC
perl -pi -e '/(<level(1|2))(\sid=\".*\")*>/;\$&?\$2==1?\$b=\$3:\$_=~s;(\$1);\$1\$b;g:1;' input
Ups !! -1 char
```
perl -pi -e '/(<level(1|2))(\sid=\".*\")*>/;\$&?\$2==1?\$b=\$3:\$_=~s;(\$1);
+\$1\$b;g:1' input

Mago
mago@rio.pm.org

perl -pi -e '/(<level(1|2))( id=\".*\")*>/;\$&?\$2==1?\$b=\$3:\$_=~s;(\$1);\$1\$b;g:1' input

Create A New User
Node Status?
node history
Node Type: note [id://573688]
help
Chatterbox?
 [zentara]: TGIF, I'm blowing my mind watching Casimir Effect & Black Holes - Sixty Symbols I love 60 Symbols. :-)

How do I use this? | Other CB clients
Other Users?
Others browsing the Monastery: (10)
As of 2017-06-23 16:08 GMT
Sections?
Information?
Find Nodes?
Leftovers?
Voting Booth?
How many monitors do you use while coding?

Results (552 votes). Check out past polls.