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