And since I'm getting excited about Perl6 pattern matching and want the practice, let's do this with a Perl6 rule, line for line with the above Perl5 regex.
# <Perl6>
/^^ \h* $$ # Match a line that only contains horizontal whitespace,
+ if anything (blank line).
( # Capture to $1.
[ # Group, but don't capture.
^^ \# # Comment delimiter at the start of a line.
.* $$ # Everything until the end of the line, includes the new
+line.
]+ # One or more comment lines in a row.
) # End $1 capture.
$id # The key we're looking for. This matches as a literal s
+tring, not a pattern.
/
# </Perl6>
And here's the short version:
m/^^ \h* $$ $ret:=([^^ \# .* $$]+) $id/;
You can see I added a small bit (' $ret:=') just before the capture. This binds the value of the capture, $1 in this case, to $ret if the pattern matches, but not if it fails. Just what we want.
kelan
Yak it up with Fullscreen ChatBox
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: |
| & | | & |
| < | | < |
| > | | > |
| [ | | [ |
| ] | | ] |
Link using PerlMonks shortcuts! What shortcuts can I use for linking?
See Writeup Formatting Tips and other pages linked from there for more info.
|
|