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

Trying to get regex pattern to match any other than letters and single special character

我是正则表达式的新手,正在尝试匹配一个非常简单的模式,但很难获得正则表达式。我基本上只想测试一堆字符串,以检查它们是否包含 '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";
}

https://regex101.com/r/wKUNjm/2