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

19
我想匹配和符号(&),但不在以下情况下存在。
'
"
>
<
&
&#

因此,在下面的行中

& MY& NAME IS M&Hh. ' " > < & &# &&&&&&

我希望它匹配除了这些之外的所有和号:

' " > < & &#
1个回答

34

这看起来需要使用负向预查断言

&(?!(?: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

5
很棒的正则表达式,Tim。我仍然喜欢这个工具,所以请原谅我链接一个更漂亮的图表 - Patrick M
我希望我有不止一票。这是非常有帮助的答案!正是我在寻找的。 - Chris

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接