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