#!perl -p s/\s//g;s%(? |
#!perl -p s/\s//g;s%(? |
Negative lookback is a positive thing here
#!perl -p s/\s//g;s%(? |
#!perl -pl s/\s//g;s%((?<=[(*+/-])-|^-)?\d+|.%$_="$& ";s/\( /$s=$_.$s;""/e;s/\) /$s=~s~(.*?)\( ~~;$1/e||s|\D |$a="+-"x/[+-]/;$s=~s~[ */$a]*~$_~;$&|e;$_%eg;$_.=$s;s/ $// |
2 simple optimizations gains me 9 strokes!
#!perl -pl s/\s//g;s%((?<=[(*+/-])-|^-)?\d+|.%$_="$& ";s/\( /$s=$_.$s;""/e;s/\) /$s=~s~(.*?)\( ~~;$1/e||s|^\D |$a="+-"x/[+-]/;$s=~s~[ */$a]*~~;$s=$_.$s;$&|e;$_%eg;$_.=$s;s/ $// |
More regex'es
#!perl -pl s/\s//g;s%((?<=[(*+/-])-|^-)?\d+|.%$_="$& ";s/\( /$s=$_.$s;""/e;s/\) /$s=~s~(.*?)\( ~~;$1/e||s|[*+/-] |$a="+-"x/[+-]/;$s=~s~[ */$a]*~~;$s=$_.$s;$&|e;$b.=$_%eg;$_=$b.$s;s/ $// |
That $a did the trick :-)
#!perl -pl
s/\s//g;$_=~s%((?<=[(*+/-])-|^-)?\d+|.%$_="$& ";/\d/?$b.=$_:(/\(/?$s=$_.$s:(/\)/?do{$s=~s/(.*?)\( //;$b.=$1}:do{$a="+-"x/[+-]/;$s=~s/[ *\/$a]*//;$b.=$&;$s=$_.$s}))%eg;$_=$b.$s;s/\s$//
|
Aargh. those egative integers... And why took I so long before using google?
#!perl -pl
s/\s//g;$_=~s%((?<=[(*+/-])-|^-)?\d+|.%$_="$& ";/\d/?$b.=$_:(/\(/?$s=$_.$s:(/\)/?do{$s=~s/(.*?)\( //;$b.=$1}:do{/[+-]/?do{$s=~s/[ *\/+-]*//;$b.=$&}:do{$s=~s/[ *\/]*//;$b.=$&};$s=$_.$s}))%eg;$_="$b$s";s/\s$//
|