I am convinced that matching parens and finding a word that is the reverse are equivalent problems. (With the word finding possibly even more difficult, because each character could act as opening as well as closing brace).
As we aparently both know, the regular expressions (as defined by computer science) can't verify an arbitrary set of parens. You need a grammar for that.
However, Perl regular expressions are more powerfull than the conventional CS definition of RE, and they can match an arbitrary length string of parens.
Take a look at Regexp::Common::balanced . I didn't look at the code, but from the docs it appears to be what you need.
Now all you need to do is change the regexp so that it will work with different kinds of parens (instead of just one opening and one closing), append each candidate word to the pattern word, and see if the match returns true. Piece of cake :-)
Except that you transformed a O(n) search into an O(n^2) search. Which is not a good thing, unless you get a percentage from hardware sales :-)
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.