Forum Webscript.Ru

Программирование => Perl => Тема начата: KiLLjoY aka SerZH от 10 Августа 2006, 16:30:13

Название: Русский в регулярных выражениях...
Отправлено: KiLLjoY aka SerZH от 10 Августа 2006, 16:30:13
Вот такой у меня вопрос.. или задача!
Нужно сделать функцию которая склоняет скажем слово \'Месяц\' по числу находящемуся слева соответственно.

Есть массив в котором находятся регулярные выражения в строковом виде. Perl имеет установленную локаль cp1251.

Запускаем функцию например так - &decline_string_by_digits(1251Часов);
 - (естественно на выводе должно быть 1251 Час)

Вот кусок из функции &decline_string_by_digits(); :
      for(0..$#{$ARRAY[3]}){ # перебираем псведо-регулярные выражения из массива
         my $pat = qr/$ARRAY[3]->[$_]/;# компилируем строки в настоящие рег выражения
         print $word =~ /$pat/; Сравниваем...
      }

Сравнение неудачно...
В чём дело?
P.S.: Если все слова перевести в латиницу(на англицкий) - то всё зашибись, а с русским не работает.
Название: Русский в регулярных выражениях...
Отправлено: vladsu от 10 Августа 2006, 18:30:34
Цитировать
KiLLjoY aka SerZH:
Perl имеет установленную локаль cp1251.

Я не понял что имеется ввиду.

Посмотрите:

perldoc perllocale
Название: Русский в регулярных выражениях...
Отправлено: KiLLjoY aka SerZH от 11 Августа 2006, 13:42:01
Я уже разобрался.. спасибо!