2013-02-26 87 views
1

我使用此正则表达式:不允许以下字符:〜%^ * = [{}] |; <>

^(?!.*&#.*)[[email protected]_'?., `#$&()-\\\\/:"]*$ 

但它接受以下字符:*=+[;<> 我如何禁止他们?我试图加入这个(?!.*(~%^*=+[{}]|;<>)),但它没有奏效!

+1

你使用什么语言/库/工具? – ruakh 2013-02-26 00:11:27

+0

我编辑了你的正则表达式来显示更好。请检查它们并确保我没有引入任何错误。 – 2013-02-26 00:11:34

+0

它看起来像你需要逃避你的正则表达式中的一些字符(太多以至于我不能真正说出你的字面意思)。像'&'和'"'这样的HTML实体在像这样的字符类中没有意义。我也很困惑,因为你的负面看法不允许'&'但你也可以在正则表达式中将它作为一个允许的角色类。 – 2013-02-26 00:13:03

回答

2

确保在此处跳过-

^(?!.*&#.*)[[email protected]_'?., `#$&()\\-\\\\/:"]*$ 
            ^^ 
+0

我相信在实际的正则表达式中应该只有两个反斜杠。这些附加内容是为了让它们正确显示并且应该像HTML实体一样被删除。在你的正则表达式中,在连字符前应该只有*一个*反斜杠,在它之后应该只有*两个*。 – 2013-02-26 03:00:33

+0

4个额外的反斜杠被添加使它工作,因为它不工作,也许是因为我使用配置文件 – xinia 2013-02-26 14:08:09

+0

谢谢@JohnKugelman。这是我的问题!我添加了这个\\ - 而现在它不允许其他角色! – xinia 2013-02-26 14:10:41

相关问题