Регулярное выражение

HyperTim

Новичок
Регулярное выражение

Добрый вечер!

Не получается составить адекватное регулярное выражение для строк типа
" Укажите версию PHP"
"Укажите версию PHP "

Одним словом, строки содержат в себе символы кириллицы, пробелы.

setlocale (LC_ALL, array ('ru_RU.KOI8-R', 'rus_RUS.1251'));
eregi("[А-Яа-я ]+", $str_value, $arr_tmp));

-~{}~ 24.07.06 19:04:

Операционная система - Win XP
 

ksnk

прохожий
[m]setlocale[/m] не имеет никакого отношения к [m]eregi[/m].
В какой кодировке сам скрипт? в какой кодировке исходные данные? Возможно понадобится отконвертировать одно в другое [m]convert_cyr_string[/m].
Если нужно определить русские буквы в неопределенных заранее русских кодировках, (не UTF!!!), более результативным будет такое
PHP:
if( ereg("[\x80-\xff ]+", ...
, хотя "адекватность" его может вызвать вопросы :)
 

HyperTim

Новичок
Скрипт и строка $str_value в cp1251. Здесь, наверное, дело в регулярном выражениии.
[А-Яа-я]+ вытаскивает только "Укажите", а мне необходимо вытаскивать " Укажите версию"
[А-Яа-я ]+ не помогает. Скорее даже вытаскивает просто пробелы...
 

ksnk

прохожий
Тогда, должно работать так
PHP:
eregi("[а-я[:space:]]+", ...
, ну, или так
PHP:
preg_match("~[а-я\s]+~i",...
 

HyperTim

Новичок
eregi("[А-Яа-я[:space:]]+", $str_value, $arr_tmp);

не отлавливает все равно
echo ' Укажите версию';
 

it-master

Новичок
preg_match_all("/[a-zA-Zа-яА-Я\\s]+/",$str_value,$arr_tmp); // Для "Укажите версию PHP"
и
preg_match_all("/[а-яА-Я\\s]+/",$str_value,$arr_tmp); // Для "Укажите версию"
 
Сверху