in reply to Re^4: Regex conditional match if previous match in same expression is true?
in thread Regex conditional match if previous match in same expression is true?

Rhandom provided a better solution. Here's a simplification of it:

/ (?: ({) | (?<!{) ) hello (?(1) } | (?!}) ) /x

It doesn't "use Perl", but I suspect it won't solve your compatibility problems like you think it will. Are you sure that engine supports conditionals ((?(...)...|...))?

I've never read "Mastering Regular Expressions".

Replies are listed 'Best First'.
Re^6: Regex conditional match if previous match in same expression is true?
by radiantmatrix (Parson) on Apr 23, 2007 at 14:25 UTC

    Yes, the Jakarta-ORO provides a Perl5Matcher class (and relatives) that supports all of the Perl-5 regex engine, with the (fairly obvious) exception of being able to execute Perl inside a regex.

    It's been a lifesaver on one of my current projects, where I have to use Java (plugins for a J2EE app, plus boss requirement) to do tasks particularly suited to regexen. I'm thankful to the Jakarta folks for making it so that I don't have to learn Yet Another Regex Syntax. ;-)

    <radiant.matrix>
    Ramblings and references
    The Code that can be seen is not the true Code
    I haven't found a problem yet that can't be solved by a well-placed trebuchet