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

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

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

Demimurych ()

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

Так ведь в koi8-r буквы не по алфавиту расположены.

unnamed ()
Ответ на: Re: perl диапазон русских букв. от unnamed

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

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

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

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

alt-x ★★★★★ ()
Ответ на: Re: perl диапазон русских букв. от alt-x

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

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

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

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