Howdy,

Thanks for the answers on my previous question, though it hasn't
resulted in a quicker dirparsing.. Anyway, here's a next one.

For my own reasons (can explain, would take long, won't till sbody
asks) I want to match a quoted string within a string. That is somehow
kind of easy, I know ... if it weren't for the slashing of quotes.
I've set up a regex that will nearly do the trick and now I'm looking
for an enhancement (or replacement) that will work in all cases.
Here's the code I use:

<?php
$str    = "the quick \"brown fox ' jumps \' over \\\\\"the ' lazy \"dog";
print "Test String: $str\n";

$regex = '/(
                        ([\'"])
                        .*?
                        (
                                (?<!\\\\)
                                \\2)
                        )/x';

print "Regex to use: $regex\n";

preg_match($regex, $str, $m);
print_r($m);
?>
(x modifier allows whitespaces in the regex).

When run, it produces the following output:

[output]
Test String: the quick "brown fox ' jumps \' over \\"the ' lazy "dog
Regex to use: /(
                        (['"])
                        .*?
                        (
                                (?<!\\)
                                \2)
                        )/x
Array
(
    [0] => "brown fox ' jumps \' over \\"the ' lazy "
    [1] => "brown fox ' jumps \' over \\"the ' lazy "
    [2] => "
    [3] => "
)
[/output]

basically, I think that I'll need to change the assertion (?<!\\) to
match only odd numbers of slashes - but I don't know how to do it. Who
does?

Thanks,
Wouter

-- 
PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php

Reply via email to