|
|
ru.perl- RU.PERL ---------------------------------------------------------------------- From : Artem Chuprina 2:5020/371.32 06 Oct 2000 12:47:54 To : crazyrol@mail.ru Subject : Re: Case-insensetive search -------------------------------------------------------------------------------- cmr> Вот пытаюсь сделать case-insensetive поиск в win-1251-текстовом файле, и cmr> нифига у меня не получается: cmr> foreach (@{$keywords}) { cmr> if ($line =~/$_/i) { cmr> bla-bla-bla cmr> last; cmr> } cmr> } cmr> Я, конечно, выкрутился, перевел текст в нижний регистр: cmr> foreach (@{$keywords}) { cmr> $line =~tr/\xC0-\xDF/\xE0-\xFF/; cmr> $_ =~tr/\xC0-\xDF/\xE0-\xFF/; cmr> if ($line =~/$_/i) { cmr> bla-bla-bla cmr> last; cmr> } cmr> } cmr> Hо может быть есть другое решение? Использовать _соответствующую_ локаль. Или перекодировать в текущую. В большинстве юниксов локаль для CP1251 надо делать отдельно, если есть из чего, и скорее всего, явно выставлять посредством POSIX::setlocale (не забудь потом вернуть на место старую). Тебя интересуют категории LC_CTYPE и LC_COLLATE. В виндах в норме она уже есть. Hазвание тоже зависит от системы. Для винды было в FAQ. -- Счастливо! Ран. --- ifmail v.2.14.os-p7-tma3 * Origin: MemoNet (2:5020/371.32@fidonet) Вернуться к списку тем, сортированных по: возрастание даты уменьшение даты тема автор
Архивное /ru.perl/17121bbef58ff.html, оценка из 5, голосов 10
|