Регулярное выражение для поиска не русских букв

Есть файл примерно с таким содержимым:

"8";"Курск";"Россия"
"9";"Lipetsk";"Lipetsk Oblast, Russia"
"10";"Арол";"Арлоўская вобласць, Расія"
"11";"Ryazan";"Ryazan Oblast, Russia"
"12";"Smolensk";"Smolensk Oblast, Russia"
"13";"Tambov";"Tambov Oblast, Russia"
"14";"Цвер";"Цвярская вобласць, Расія"
"28";Махачкала;"Республика Дагестан, Россия"

Мне надо из него получить всё, что не на русском языке (просто проверяю есть ли не русские буквы. Если знаете более оптимальное решение, что-то вроде переводчика, буду благодарен). Делаю следующим образом:

$handle = fopen(__DIR__."/regions.csv", "r");
while (($data = fgetcsv($handle, '', ';')) !== FALSE) {
    if(preg_match("/[^а-я ]+/msiu", mb_convert_encoding($data[2], "UTF-8"))){
      $notRus[] = array(mb_convert_encoding($data[0], "UTF-8"), mb_convert_encoding($data[1], "UTF-8"), mb_convert_encoding($data[2], "UTF-8"));
    }
}
fclose($handle);
// Output
$handle = fopen(__DIR__."/notRus.csv", "w");
foreach ($notRus as $notRu)
{
   fputcsv($handle, $notRu, ";", '"');
   $counter++;
}
echo $counter;
fclose($handle);

На выходе получаю следующее: (Курск убрался, а Махачкала нет).

9;Lipetsk;"Lipetsk Oblast, Russia"
10;Арол;"Арлоўская вобласць, Расія"
11;Ryazan;"Ryazan Oblast, Russia"
12;Smolensk;"Smolensk Oblast, Russia"
13;Tambov;"Tambov Oblast, Russia"
14;Цвер;"Цвярская вобласць, Расія"
28;Махачкала;"Республика Дагестан, Россия"

Это из-за пробела? Но в preg_match стоит же пробел: "/[^а-я ]+/msiu"


Ответы (0 шт):