想知道是否有更有效的方法来检测字符串是否包含使用正则表达式一次或多次字母表中的每个字母?
我很感激任何建议
$str = str_split(strtolower('We promptly judged antique ivory buckles for the next prize'));
$az = str_split('abcdefghijklmnopqrstuvwxyz');
$count = 0;
foreach($az as $alph) {
    foreach($str as $z) {
        if($alph == $z) {
           $count++;
            break;
        }
    }
}
使用正则表达式,你可以做到这一点,但它不是最佳的,也不是很快的,@hjpotter 方式,如果从快得多:
var_dump(strlen(preg_replace('~[^a-z]|(.)(?=.*\1)~i', '', $str)) == 26);
它删除所有非字母字符、所有重复字母(不区分大小写),并将字符串长度与 26 进行比较。
[^a-z]匹配任何非字母字符(.)捕获第 1 组中的一个字母(?=.*\1)检查相同的字母是否在其他地方(在右侧)