Problems? Is your data what you think it is? PerlMonks

### comment on

 Need Help??
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;

In reply to Re: The craziest RegExes you ever created by zshzn
in thread The craziest RegExes you ever created by Ieronim

Title:
Use:  <p> text here (a paragraph) </p>
and:  <code> code here </code>
to format your post; it's "PerlMonks-approved HTML":

• Are you posting in the right place? Check out Where do I post X? to know for sure.
• Posts may use any of the Perl Monks Approved HTML tags. Currently these include the following:
<code> <a> <b> <big> <blockquote> <br /> <dd> <dl> <dt> <em> <font> <h1> <h2> <h3> <h4> <h5> <h6> <hr /> <i> <li> <nbsp> <ol> <p> <small> <strike> <strong> <sub> <sup> <table> <td> <th> <tr> <tt> <u> <ul>
• Snippets of code should be wrapped in <code> tags not <pre> tags. In fact, <pre> tags should generally be avoided. If they must be used, extreme care should be taken to ensure that their contents do not have long lines (<70 chars), in order to prevent horizontal scrolling (and possible janitor intervention).
• Want more info? How to link or or How to display code and escape characters are good places to start.

Create A New User
Domain Nodelet?
Chatterbox?
and the web crawler heard nothing...

How do I use this? | Other CB clients
Other Users?
Others perusing the Monastery: (4)
As of 2022-08-08 20:04 GMT
Sections?
Information?
Find Nodes?
Leftovers?
Voting Booth?

No recent polls found

Notices?