### Re: The craziest RegExes you ever created

by zshzn (Hermit)
 on Jul 04, 2006 at 02:05 UTC ( #559072=note: print w/replies, xml ) Need Help??

in reply to The craziest RegExes you ever created

This is a very silly script I wrote to demonstrate the very possibility of how something could be done this way. The regex is to convert roman numerals to integers. It is neither useful nor witty.

use strict; sub l { return length shift } sub roman2int { \$_ = shift; /(M*)(?{\$a+=1000*l\$1})(D*)(?:(?!M)(?{\$a+=500*l\$2})|(?{\$a-=500*l\$2} +))(C*)(?:(?![MD])(?{\$a+=100*l\$3})|(?{\$a-=100*l\$3}))(L*)(?:(?![MDC])(? +{\$a+=50*l\$4})|(?{\$a-=50*l\$4}))(X*)(?:(?![MDCL])(?{\$a+=10*l\$5})|(?{\$a- +=10*l\$5}))(V*)(?:(?![MDCLX])(?{\$a+=5*l\$6})|(?{\$a-=5*l\$6}))(I*)(?:(?![ +MDCLXV])(?{\$a+=1*l\$7})|(?{\$a-=1*l\$7}))(M*)(?{\$a+=1000*l\$8})(D*)(?{\$a+ +=500*l\$9})(C*)(?:(?![MD])(?{\$a+=100*l\$10})|(?{\$a-=100*l\$10}))(L*)(?:( +?![MDC])(?{\$a+=50*l\$11})|(?{\$a-=50*l\$11}))(X*)(?:(?![MDCL])(?{\$a+=10* +l\$12})|(?{\$a-=10*l\$12}))(V*)(?:(?![MDCLX])(?{\$a+=5*l\$13})|(?{\$a-=5*l\$ +13}))(I*)(?:(?![MDCLXV])(?{\$a+=1*l\$14})|(?{\$a-=1*l\$14}))(C*)(?{\$a+=10 +0*l\$15})(L*)(?:(?![MDC])(?{\$a+=50*l\$16})|(?{\$a-=50*l\$16}))(X*)(?:(?![ +MDCL])(?{\$a+=10*l\$17})|(?{\$a-=10*l\$17}))(V*)(?:(?![MDCLX])(?{\$a+=5*l\$ +18})|(?{\$a-=5*l\$18}))(I*)(?:(?![MDCLXV])(?{\$a+=1*l\$19})|(?{\$a-=1*l\$19 +}))(L*)(?{\$a+=100*l\$20})(X*)(?:(?![MDCL])(?{\$a+=10*l\$21})|(?{\$a-=10*l +\$21}))(V*)(?:(?![MDCLX])(?{\$a+=5*l\$22})|(?{\$a-=5*l\$22}))(I*)(?:(?![MD +CLXV])(?{\$a+=1*l\$23})|(?{\$a-=1*l\$23}))(X*)(?{\$a+=10*l\$24})(V*)(?:(?![ +MDCLX])(?{\$a+=5*l\$25})|(?{\$a-=5*l\$25}))(I*)(?:(?![MDCLXV])(?{\$a+=1*l\$ +26})|(?{\$a-=1*l\$26}))(X*)(?{\$a+=10*l\$27})/; return \$a; } print roman2int shift;

Replies are listed 'Best First'.
Re^2: The craziest RegExes you ever created
by Ieronim (Friar) on Jul 04, 2006 at 16:32 UTC
It is neither useful nor witty.
So i won't add it to my list, in spite of its incredible length :)
Although it is both crazy and interesting, in its own way, and those were two attributes you requested :)

Create A New User
Domain Nodelet?
Node Status?
node history
Node Type: note [id://559072]
help
Chatterbox?
and the web crawler heard nothing...

How do I use this?Last hourOther CB clients
Other Users?
Others wandering the Monastery: (3)
As of 2023-12-02 19:33 GMT
Sections?
Information?
Find Nodes?
Leftovers?
Voting Booth?
What's your preferred 'use VERSION' for new CPAN modules in 2023?

Results (18 votes). Check out past polls.

Notices?