Here's a solution that uses a negative lookahead to find the ending boundaries of the '-' groupings.

use strict; use warnings; my $string = " ---------- ------------------------- -------- ---- + ------------------------- ----- ---- ----------- -----------"; print pos($string), "\n" while $string =~ m/-(?!-)/g;

I also toyed with m/-+/g, which works equally well, but must match the entire grouping of -'s before finishing each iteration. If the grouping is really long, that might be a little slower. The method I've provided just looks for boundaries, which seemed to be a good determination of the end of each grouping.

Oh, also, in the previously posted solutions, people were subtracting 1 from pos(), which gives the column of the final hyphen of each grouping. But your proposed sample output seems to be asking for the column immediately following the end of each grouping. The solution I provided returns the column following the end of each grouping, to match your sample output. If you intended otherwise, add that "-1" to the code.


Dave


In reply to Re: text parsing question by davido
in thread text parsing question by kfarr2

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



  • Posts are HTML formatted. Put <p> </p> tags around your paragraphs. Put <code> </code> tags around your code and data!
  • Titles consisting of a single word are discouraged, and in most cases are disallowed outright.
  • Read Where should I post X? if you're not absolutely sure you're posting in the right place.
  • Please read these before you post! —
  • Posts may use any of the Perl Monks Approved HTML tags:
    a, abbr, b, big, blockquote, br, caption, center, col, colgroup, dd, del, details, div, dl, dt, em, font, h1, h2, h3, h4, h5, h6, hr, i, ins, li, ol, p, pre, readmore, small, span, spoiler, strike, strong, sub, summary, sup, table, tbody, td, tfoot, th, thead, tr, tt, u, ul, wbr
  • You may need to use entities for some characters, as follows. (Exception: Within code tags, you can put the characters literally.)
            For:     Use:
    & &amp;
    < &lt;
    > &gt;
    [ &#91;
    ] &#93;
  • Link using PerlMonks shortcuts! What shortcuts can I use for linking?
  • See Writeup Formatting Tips and other pages linked from there for more info.