如果只提供合法字符,如何使用php preg_match()检测非法字符?

如果只提供合法字符,如何使用php preg_match()检测非法字符?,php,regex,preg-match,Php,Regex,Preg Match,我有一组允许在文本字符串中使用的字符。是否可以使用preg_match检测所提供字符范围之外的字符 例如: $str1 = "abcdf9" $str2 = "abcdf@" $str3 = "abcdfg" 法律字符=“a-z” if(preg_match()…)需要为“$str1”和“$str2”返回false,但为$str3返回“tru” 这可能吗?请查看此站点,它对部署您的正则表达式非常有用 if(!preg_match('/[^a-z]/', $string)) { //only a

我有一组允许在文本字符串中使用的字符。是否可以使用preg_match检测所提供字符范围之外的字符

例如:

$str1 = "abcdf9"
$str2 = "abcdf@"
$str3 = "abcdfg"
法律字符=“a-z”

if(preg_match()…)需要为“$str1”和“$str2”返回false,但为$str3返回“tru”


这可能吗?

请查看此站点,它对部署您的正则表达式非常有用

if(!preg_match('/[^a-z]/', $string)) { //only a-z found }

//or

if(preg_match('/[^a-z]/', $string)) {
    return false; // other stuff found
} else {
    return true; // only a-z found
}

你需要的是/[a-z]/


您可以使用/[a-z]{5}/

Yes指定字符数。这是可能的
/[^a-z]/
什么是@MarcB说的,但是反转测试——如果输入文本中有非法字符,则返回true测试被反转。这将匹配任何非a-z的。这就是
^
正在做的。嗯。。。谢谢根据Rubular.com的参考资料,我认为“^”的意思一直是“线路的起点”。