2.39. Замена символов табуляции пробелами и сворачивание пробелов в табуляторы

2.39. Замена символов табуляции пробелами и сворачивание пробелов в табуляторы

Бывает, что имеется строка с символами табуляции, а мы хотели бы преобразовать их в пробелы (или наоборот). Ниже показаны два метода, реализующих эти операции:

class String

 def detab(ts=8)

  str = self.dup

  while (leftmost = str.index(" ")) != nil

   space = " "* (ts-(leftmost%ts))

   str[leftmost]=space

  end

  str

 end

 def entab(ts=8)

  str = self.detab

  areas = str.length/ts

  newstr = ""

  for a in 0..areas

   temp = str[a*ts..a*ts+ts-1]

   if temp.size==ts

    if temp =~ /+/

     match=Regexp.last_match[0]

     endmatch = Regexp.new(match+"$")

     if match.length>1

      temp.sub!(endmatch," ")

     end

    end

   end

   newstr += temp

  end

  newstr

 end

end

foo = "Это всего лишь тест. "

puts foo

puts foo.entab(4)

puts foo.entab(4).dump

Отметим, что этот код не распознает символы забоя.

Данный текст является ознакомительным фрагментом.



Поделитесь на страничке

Похожие главы из других книг:

Функции отрезания пробелов

Из книги автора

Функции отрезания пробелов trimУдаляет из заданной строки начальные и конечные пробельные символы.Синтаксис:string trim(string str)Возвращает копию str, только с удаленными ведущими и концевыми пробельными символами. Под пробельными символами надо понимать и пробел.Например, вызов


Сворачивание Outlook в область уведомлений

Из книги автора

Сворачивание Outlook в область уведомлений Чтобы сворачивать Outlook не на панель задач, а в область уведомлений, нужно создать новый параметр типа DWORD °MinToTray° со значением 1 (0 - сворачивать на панель задач) в разделе


Настройка порядка перехода по нажатию клавиши табуляции

Из книги автора

Настройка порядка перехода по нажатию клавиши табуляции К наиболее интересным особенностям Windows можно отнести то, что при нажатии клавиши <Tab> фокус перемещается с одного элемента управления на другое. При этом элементы управления выделяются после нажатия клавиши


4.21. Замена в текстовом файле последовательностей пробелов на один пробел

Из книги автора

4.21. Замена в текстовом файле последовательностей пробелов на один пробел ПроблемаИмеется текстовый файл с последовательностями пробелов различной длины и требуется заменить каждое вхождение такой последовательности на единственный пробел.РешениеДля чтения


Порядок переходов по нажатию клавиши табуляции

Из книги автора

Порядок переходов по нажатию клавиши табуляции Теперь, когда вы создали достаточно интересную форму, давайте рассмотрим проблему порядка переходов по нажатию клавиши табуляции. Вы, наверное, знаете, что в том случае, когда форма содержит множество элементов


Мастер настройки переходов по табуляции

Из книги автора

Мастер настройки переходов по табуляции В Visual Studio 2005 IDE есть мастер настройки переходов по табуляции, доступ к которому можно получить с помощью выбора View?Tab Order из меню (этот пункт меню доступен только при активном окне проектирования формы). После активизации мастера


Поиск и замена

Из книги автора

Поиск и замена В новой версии Excel был полностью изменен пользовательский интерфейс и расширены функциональные возможности средства Найти и заменить. Теперь можно с помощью одной операции производить поиск и замену по всем листам книги, повторно выполнять запросы поиска


Определение класса символов и преобразование символов

Из книги автора

Определение класса символов и преобразование символов Функция Краткое описание isalnum проверка на букву или цифру isalpha проверка на букву isascii проверка на символ из набора кодировки ASCII iscntrl проверка на управляющий символ isdigit проверка на десятичную


Пример 17-4. Вывод многострочных сообщений с подавлением символов табуляции

Из книги автора

Пример 17-4. Вывод многострочных сообщений с подавлением символов табуляции #!/bin/bash# То же, что и предыдущий сценарий, но...# Символ "-", начинающий строку-ограничитель встроенного документа: <<-# подавляет вывод символов табуляции, которые могут встречаться в теле


Замена специальных символов

Из книги автора

Замена специальных символов Как мы уже знаем, в XML есть несколько специальных символов, которые, как правило, заменяются процессором при выводе документа на соответствующие символьные или встроенные сущности. К примеру, для того, чтобы вывод был корректным XML-документом,


Поиск и замена символов

Из книги автора

Поиск и замена символов Иногда при подготовке электронных документов возникает задача поиска определенных текстовых фрагментов. Например, вы забыли номер чертежа, но помните, что в его названии или дополнительной информации, размещенной на чертеже, содержится


11.1 Замена Лексем

Из книги автора

11.1 Замена Лексем Командная строка компилятора вида#define идентификатор строка_лексем вызывает замену препроцессором последующих вхождений идентификатора, заданного строкой символов. Точка с запятой внутри (или в конце) строки символов является частью этой строки.Строка


Замена заголовка

Из книги автора

Замена заголовка Возможности реестра позволяют изменить стандартный заголовок окна Почта Windows (версии 5.0 и 6.0) на произвольный. Для этого в разделе реестра HKEY_CURRENT_USERSoftwareMicrosoftWindows Mail необходимо создать строковый параметр WindowTitle, значением которого будет требуемый текст. В


Практическая работа 33. Создание документа с использованием табуляции, границ и заливки

Из книги автора

Практическая работа 33. Создание документа с использованием табуляции, границ и заливки Задание. Создайте текст приказа, пример которого показан на рис. 5.41.Последовательность выполнения1. Создайте новый документ и наберите текст приказа.2. Для вставки символа телефона