Программирование на языке Ruby
Шрифт:
Регулярные выражения в режиме UTF-8 тоже становятся несколько «умнее».
Библиотека
В следующем разделе мы снова рассмотрим некоторые типичные операции со строками и регулярными выражениями. Заодно поближе познакомимся с
4.2.2. Возвращаясь к строкам и регулярным выражениям
При работе с UTF-8 некоторые операции ничем не отличаются. Например, конкатенация строк выполняется так же, как и раньше:
Поскольку UTF-8 не имеет состояния, то для проверки вхождения подстроки тоже ничего специально делать не нужно:
Однако при написании интернациональной программы некоторые типичные допущения все же придется переосмыслить. Ясно, что символ больше не эквивалентен байту. При подсчете символов или байтов надо думать о том, что именно мы хотим сосчитать и для чего. То же относится к числу итераций.
По общепринятому соглашению, кодовую позицию часто представляют себе как «программистский символ». Это еще одна полуправда, но иногда она оказывается полезной.
Метод
Такие методы, как
Если вы не пользуетесь монолитной формой, то в некоторых случаях метод может сработать, поскольку латинские буквы отделены от диакритических знаков. Но в общем случае работать не будет — в частности, для турецкого, немецкого, голландского и любого другого языка с нестандартными правилами преобразования регистра.
Возможно, вы думаете, что неакцентированные символы в некотором смысле эквивалентны своим акцентированным вариантам. Это почти всегда не так. Здесь мы имеем дело с разными символами. Убедимся в этом на примере метода
Но для составных (не монолитных) символов верно прямо противоположное. В этом случае латинская буква распознается.
Метод
Существует вспомогательный метод
В библиотеке
Можно побайтно просматривать строку, как обычно, с помощью итератора
Шакалы
18. Гуров
Детективы:
полицейские детективы
рейтинг книги
Санта-Хрякус
20. Плоский мир
Фантастика:
юмористическая фантастика
рейтинг книги
Огненный зверь (сборник)
Фантастика:
фэнтези
рейтинг книги
Князь Андер Арес 2
2. Андер Арес
Фантастика:
рпг
аниме
фэнтези
фантастика: прочее
рейтинг книги
Мясной Бор
Проза:
военная проза
историческая проза
рейтинг книги
Избранное
Проза:
советская классическая проза
рейтинг книги
Валентин Катаев
Юмор:
юмористическая проза
прочий юмор
рейтинг книги
Личник
3. Ермак
Фантастика:
альтернативная история
рейтинг книги
Перекрестья
7. Наладчик Джек
Фантастика:
ужасы и мистика
рейтинг книги
Радищев
Проза:
историческая проза
рейтинг книги
Статьи из "Арабесок"
Другие редакции
Документальная литература:
публицистика
рейтинг книги