1

我想限制在特定输入字段中使用未转义的 & 符号。我无法让正则表达式终止“&”的使用,除非后面跟着“amp;”......或者可能只是限制“&”的使用(注意空格)。

我试图在这个线程中调整答案,但无济于事。谢谢。

(FWIW,这是我为确保文件名字段不包含限制字符而制作的正则表达式。并以 .mp3 结尾。它工作正常,但它看起来有效吗?)

^[^&,<,>,:,",/,\\,|,?,\*]+(\.mp3|\.MP3|\.Mp3|\.mP3)$
4

2 回答 2

8

此正则表达式匹配任何&没有后跟的出现amp;

/&(?!amp;)/

红色的

此正则表达式接受包含除&, 或字符串之外的字符的字符串&amp;

/^([^&]|&amp;)*$/

红色的

您可以使用其中一个或另一个,这取决于哪个最方便。区别在于,如果第一个正则表达式匹配,则该字符串应被拒绝,而如果第二个正则表达式匹配,则应接受该字符串。

于 2011-01-31T23:16:12.163 回答
0

您可以匹配 on/&(?!amp;)/以找到任何 &' 后面没有 &。(?!) 构造称为负前瞻

无论如何,假设您使用的是支持它们的正则表达式引擎。我知道 Perl/PCRE 正则表达式可以。

于 2011-01-31T23:17:36.810 回答