Regex replace text outside html tags
Okay, try using this regex:
(text|simple)(?![^<]*>|[^<>]*</)
Example worked on regex101.
Breakdown:
( # Open capture group
text # Match 'text'
| # Or
simple # Match 'simple'
) # End capture group
(?! # Negative lookahead start (will cause match to fail if contents match)
[^<]* # Any number of non-'<' characters
> # A > character
| # Or
[^<>]* # Any number of non-'<' and non-'>' characters
</ # The characters < and /
) # End negative lookahead.
The negative lookahead will prevent a match if text
or simple
is between html tags.
^([^<]*)<\w+.*/\w+>([^<]*)$
However this is a very naive expression. It would be better to use a DOM parser.