| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Perl: разработка для Web > рег. выражения нечувствительность к регистру!? |
| Автор: burakov 15.5.2007, 09:56 |
| Добрый день! Работаю под WIndows XP Задача ... найти в файле слово "припев" независимо от регистра букв. Т.е. Может быть и "ПРИПЕВ", и "пРИпЕв". И затем сделать все буквы в этом слове заглавными. пишу if ($str =~ /припев/i) {$str =~ tr/а-я/А-Я/; $str=~ tr/a-z/A-Z/;}) НЕ ИЩЕТ!!! Т.е. слово "припев" находит, а все остальное типа "пРИпЕв" - не находит. Возможно ли под windows использовать ключ "... i - не различать строчные и заглавные буквы... " |
| Автор: amg 15.5.2007, 10:35 | ||
| use locale; Если это заработает, то проблем не будет. И i будет правильно восприниматься, и не нужно будет никаких tr - просто $str = uc $str; А если не заработает, то можно так:
Добавлено О! nitr меня опередил! |
| Автор: nitr 15.5.2007, 10:35 |
| а так вот возможности форума http://forum.vingrad.ru/forum/topic-151257/anchor-entry1133610/0.html#look Добавлено через 1 минуту и 48 секунд amg, да... но в Windows заработает |
| Автор: Shaggie 15.5.2007, 10:37 | ||||
Я уже что-то похожее писал... надо декодировать строку во внутреннее её представление на перле, тогда всё будет работать:
Если выводишь на виндовую консоль, в конце надо добавить
P.S. просто у меня отчаяно отказывается работать use locale; |
| Автор: nitr 15.5.2007, 10:38 | ||||
| [offtopic] amg, хе хе ;) [/offtopic] Shaggie, я помню этот код (т.е. такой способ тогда так (если правильно понять вопрос ;) ):
подойдет оно, если конечно не сработает этот:
|
| Автор: burakov 15.5.2007, 11:05 |
| Друзья - огромное спасибо. Заработало use locale; Добавлено через 2 минуты и 24 секунды в принципе помечаю вопрос как "решенный". |