Dear Monks,

Be foul means an evily generated report that I have no control over must be parsed; it takes the form:

"a value with ""quotes"" in"

As the report generator encloses text within double quotes, if it encounters any double quotes in text it's enclosing, it simply doubles them up. But this leaves me very stuck when trying to pull the data back out between the single quotes (via a regex tokenizer). The regex spirit is not lifting her filthy skirt for me tonight. How can I return everything between the single "double" quotes. i.e., make

$1='a value with ""quotes"" in'

I toyed around with look aheads/behinds but don't really get it. Maybe it's easier than I think it is and I've just confused.

my $s = qr/"(.*?)"(?!")\s*/xms;

Don't look at the above too long it's just my latest desperate attempt.

Is it possible in the general sense? Any other nice solutions to the problem (other than regex)?

These cases should work:

""

"a"""""

"a""b""c""d""f"

Thanks for any help!

Matt.


In reply to Help with Double Double Quotes regular expression by mattford63

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.