#! perl -slw
use strict;
my $s = 'XXQQGGYYNNQGYNNNNQNGGNGGNGGGQQQNNN';
print $s;
print ' ' x( pos( $s ) - length( $1) ), $1
while $s =~ m[
( ## Capture to $1
(?: ## A group
([QGYN]) ## of these characters
(?!\2{2}) ## repeated no more than twice in successi
+on
){3,6} ## 3 to 6 characters in length
? ## Remove for greedy matching.
)
]xg;
## Condensed and greedy
print $s;
print ' ' x( pos( $s ) - length( $1) ), $1
while $s =~ m[( (?: ([QGYN]) (?!\2{2}) ){3,6} ) ]xg;
__END__
[20:37:58.32] P:\test>temp
XXQQGGYYNNQGYNNNNQNGGNGGNGGGQQQNNN
QQG
GYY
NNQ
NNQ
NGG
NGG
XXQQGGYYNNQGYNNNNQNGGNGGNGGGQQQNNN
QQGGYY
NNQGY
NNQNGG
NGGN
Examine what is said, not who speaks.
"But you should never overestimate the ingenuity of the sceptics to come up with a counter-argument." -Myles Allen
"Think for yourself!" - Abigail
"Time is a poor substitute for thought"--theorbtwo
"Efficiency is intelligent laziness." -David Dunham
"Memory, processor, disk in that order on the hardware side. Algorithm, algorithm, algorithm on the code side." - tachyon
-
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 How to display code and escape characters
are good places to start.
|