Php 试图使正则表达式模式匹配除字母和单个特殊字符以外的任何字符

Php 试图使正则表达式模式匹配除字母和单个特殊字符以外的任何字符,php,regex,preg-match,Php,Regex,Preg Match,我是新来的正则表达式,我试图匹配一个非常简单的模式,但我很难得到正则表达式。我基本上只想测试一组字符串,以检查它们是否包含任何不是“a-z”(小写或大写)或“_”字符的内容。因此,如果字符串包含“@”字符,我希望它失败 目前看来: if (!preg_match("/[a-z_]/", $string)) { echo "Bad string"; } 但这并没有从表面上看出什么。任何帮助都将不胜感激。在正则表达式中使用否定搜索您不想要的字符 /

我是新来的正则表达式,我试图匹配一个非常简单的模式,但我很难得到正则表达式。我基本上只想测试一组字符串,以检查它们是否包含任何不是“a-z”(小写或大写)或“_”字符的内容。因此,如果字符串包含“@”字符,我希望它失败

目前看来:

if (!preg_match("/[a-z_]/", $string)) {
     echo "Bad string";
}

但这并没有从表面上看出什么。任何帮助都将不胜感激。

在正则表达式中使用否定搜索您不想要的字符

// If the string has any characters other than A-z or _ then echo bad string
if (preg_match("/[^a-zA-Z_]/", $string)) {
     echo "Bad string";
}
[^a-zA-Z]
这里是一个示例
如果(filter\u var($field,filter\u VALIDATE\u REGEXP,array(“options”=>array(“REGEXP”=>“/^[a-zA-Z]*$/”){return$field;}否则{return FALSE;}