正则表达式匹配&符号但不转义xml字符

时间:2013-05-07 15:36:51

标签: regex regex-negation

我想匹配&符号(&)但不是以下列方式存在

'
"
>
<
&
&#

所以在以下行中     & MY& NAME IS M&Hh. ' " > < & &# &&&&&&

我希望它匹配除了存在的所有&符号之外的所有&符号     ' " > < & &#

1 个答案:

答案 0 :(得分:27)

这似乎是negative lookahead assertions的工作:

&(?!(?:apos|quot|[gl]t|amp);|#)

应该有用。

<强>解释

&        # 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