PHP preg_match 语言相关的解释错误

PHP preg_match language dependent interpretation error

土耳其语字符 Ş İ Ö Ü 不支持。我累了。

<?php
header('Content-Type: text/html; charset=utf-8');

$test = "azAZ09andSpace supported but this turkish characters Ş İ Ö Ü like not supported";
        //So it goes to the "else block".

if (preg_match('/^[a-zA-Z0-9 ]+$/', $test)){
echo "match";
}else{
echo "not match"; //return false. Because Ş İ Ö Ü like not supported
}

?>

\pL 匹配任何字母(包括重音字母),因此您可以使用以下内容:

preg_match('/^[\pL0-9 ]+$/u', $test)

类似地,\d匹配任何数字,\s匹配任何space字符,所以你也可以使用下面的:

preg_match('/^[\pL\d\s]+$/u', $test)