如何正则表达'元字符'

时间:2011-12-01 01:11:41

标签: php regex

我想为密码字段编写一个模式,用户必须使用metachars作为密码(元字符如:@ @ $%^& *()),我搜索它但没找到任何模式,这是可能的吗?写这样的模式? 在此先感谢

3 个答案:

答案 0 :(得分:0)

是。您可以将其中的大多数放入正则表达式中,就像任何其他角色一样。对于那些在正则表达式中具有特殊含义的用户,请根据您的编程语言为其添加\\\作为前缀。

答案 1 :(得分:0)

如果您正在寻找与所有特殊字符匹配的正则表达式,您可以采取以下几种方法:

  1. 你可以编写一个排除字母数字的正则表达式:

    / [^ A-ZA-Z0-9] /

  2. 您可以选择您感兴趣的特殊字符,并使用反斜杠仔细转义regexp中具有特殊含义的字符,为该特定字符集编写您自己的正则表达式。

  3. 如果您知道将涉及什么字符集,以及它是否相当小(因此不是UTF-8,这将是巨大的),您可以通过它并识别特殊字符,然后执行上面的#2。如果您100%确定所有数据都将以(例如)ASCII字符形式出现,这可能是可行的。

答案 2 :(得分:0)

如果您的意思是密码必须至少包含其中一个字符,那么这样的内容可能会有效:

if (!preg_match('/['.preg_quote('!@#$%^&*()').']/', $password)) {
    // fails
}