Я бы хотел добавить к ответу Джеймса несколько конкретных примеров. Я использовал этот оператор для извлечения фрагментов текста на основе регулярных выражений.
Я писал инструмент для запуска команд на удаленном сервере через Net :: SSH. Этот конкретный сервер имел досадную привычку печатать MOTD независимо от того, был ли сеанс сеансом входа в систему или нет. Это привело к возвращению большого количества мусора, когда я запустил команду и получил вывод. Поскольку у меня не было большого влияния в настройке сервера, я создал небольшой скрипт, который распечатывал разделитель, запускал программу и затем печатал другой разделитель. Вывод выглядел примерно так.
Welcome to Server X!
+----------------------------------------------------------------------+
| Use of this server is restricted to authorized users only. User |
| activity may be monitored and disclosed to law enforcement personnel |
| if any possible criminal activity is detected. |
+----------------------------------------------------------------------+
----------------------------------------------
Setting up environment for user Adam.
----------------------------------------------
>>>>>>>>>>>>>>>>>>>>>>>>>
Program Output
<<<<<<<<<<<<<<<<<<<<<<<<<
Оператор триггера был полезным сочетанием клавиш для извлечения только части кода с нужным мне выводом. Я использовал регулярное выражение, которое соответствовало 25 «больше», чем «>», чтобы начать матч, и 25 меньше, чем «<», чтобы закончить матч. </p>
output.each { |line| puts line if line[/^>{25}/] .. line[/^<{25}/] }
выход
>>>>>>>>>>>>>>>>>>>>>>>>>
Program Output
<<<<<<<<<<<<<<<<<<<<<<<<<
Большинство примеров, которые я видел, были связаны с извлечением фрагментов данных из файла или массивов на основе регулярных выражений. Некоторые другие примеры, которые приходят на ум, - это удаление конфликтов git merge, некоторые записи из устаревших плоских файловых систем (например, структуры, записанные в файл) и файлы журналов.
По сути, в любое время вам нужно будет извлекать разделы, основанные на начальных и конечных данных, а не только на содержимом отдельной строки. Это немного сложнее, чем простое регулярное выражение, но менее сложно, чем написание парсера.