问题
I would like to match ampersand (&) but not when it exists in following manner
'
"
>
<
&
&#
So in the following line
& MY& NAME IS M&Hh. ' " > < & &# &&&&&&
I want it to match all ampersands except those which exist in
' " > < & &#
回答1:
That looks like a job for negative lookahead assertions:
&(?!(?:apos|quot|[gl]t|amp);|#)
should work.
Explanation:
& # Match &
(?! # only if it's not followed by
(?: # either
apos # apos
|quot # or quot
|[gl]t # or gt/lt
|amp # or amp
); # and a semicolon
| # or
\# # a hash
) # End of lookahead assertion
来源:https://stackoverflow.com/questions/16423089/regex-match-ampersand-but-not-escaped-xml-characters