LINUX.ORG.RU

perl диапазон русских букв.


0

0

Имеем файл /tmp/test
делаем 
#. cat /tmp/test
stdout: <BR>анонс<BR>
#. perl -n -e 'if (/(<BR>)(анонс)(<BR>)/) {print "$2\n";}' /tmp/test
stdout: анонс
#. perl -n -e 'if (/(<BR>)([а-я]*)(<BR>)/) {print "$2\n";}' /tmp/test
stdout:
#. perl -n -e 'if (/(<BR>)([а-я,с]*)(<BR>)/) {print "$2\n";}' /tmp/test
stdout: анонс

То есть если я задаю диапазон русских букв видом [a-я] то слово не попадает. Если добавляю еще букву "c" то слово попадает

Буквы точно все везде русские. Кто нибудь мне расталкует в чем моя беда.
perl-5.8.5-9

В догонку проврял в двух локаля koi и utf один и тотже результат

Demimurych
() автор топика
Ответ на: комментарий от unnamed

На самом деле проблемы две. Вот, иллюстрация одной:

$ perl -e 'print sort(qw / а б в г д е ж з и к л м н о п р с т у ф я/);print "\n";'
абдефгиклмнопярстужвз
$ perl -e 'use locale; print sort(qw / а б в г д е ж з и к л м н о п р с т у ф я/);print "\n";'
абвгдежзиклмнопрстуфя
$ locale
LANG=ru_RU.koi8r
...

Но работу интервалов, это все рано не гарантирует.

alt-x ★★★★★
()
Ответ на: комментарий от alt-x

bash-2.05b$ perl -e 'use locale; print sort(qw / а б в г д е ж з и к л м н о п р с т у ф я/);print "\n";'

абвгдежзиклмнопрстуфя

anonymous
()
Ответ на: комментарий от anonymous

ступил, невнимательно примеры прочитал.

anonymous
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.