Need variable width negative lookbehind replacement
        Posted  
        
            by Technoh
        on Stack Overflow
        
        See other posts from Stack Overflow
        
            or by Technoh
        
        
        
        Published on 2010-04-27T21:43:40Z
        Indexed on 
            2010/04/27
            21:53 UTC
        
        
        Read the original article
        Hit count: 400
        
I have looked at many questions here (and many more websites) and some provided hints but none gave me a definitive answer. I know regular expressions but I am far from being a guru. This particular question deals with regex in PHP.
I need to locate words in a text that are not surrounded by a hyperlink of a given class. For example, I might have
This <a href="blabblah" class="no_check">elephant</a> is green and this elephant is blue while this <a href="blahblah">elephant</a> is red.
I would need to match against the second and third elephants but not the first (identified by test class "no_check"). Note that there could more attributes than just href and class within hyperlinks. I came up with
((?<!<a .*class="no_check".*>)\belephant\b)
which works beautifully in regex test software but not in PHP.
Any help is greatly appreciated. If you cannot provide a regular expression but can find some sort of PHP code logic that would circumvent the need for it, I would be equally grateful.
© Stack Overflow or respective owner