Jonathan Lang wrote:
I'm trying to devise a regex that matches from the first double-quote character found to the next double-quote character that isn't part of a pair; but for some reason, I'm having no luck. Here's what I tried: /"(.*?)"(?!")/ Sample text: author: "Jonathan ""Dataweaver"" Lang" key=val What I'm getting for $1 in the first match: Jonathan " What I'm looking for: Jonathan ""Dataweaver"" Lang What did I miss, and how can I most efficiently perform the desired match?
Your regex looks for the first double-quote and then captures everything after that up to the first subsequent double-quote that isn't followed immediately by another one. The second quote of the pair before 'Dataweaver' matches this criterion so your regex captures up to the character before it. This: $str =~ /"((?:.*?"")*.*?)"/; should do what you want. After finding the first double-quote it captures all following sequences ending in a pair of double quotes, plus anything after those up to the closing quote. HTH, Rob -- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED] http://learn.perl.org/