Для простых задач сортировки вы можете просто переставить содержимое строки, отсортировать, а затем вернуть строки в исходную форму. Это часто можно сделать с помощью простых регулярных выражений. См. этот вопрос для примера.
В более сложных случаях, например, с двумя или более элементами, сортируемые элементы можно собирать из строки ввода с помощью регулярного выражения и затем вставлять в начале строки. Полезно добавить разделитель между терминами сортировки и исходной строкой. После того, как сортировка выполнена, термины сортировки и разделитель удалены.
Для этого вопроса будет достаточно простой перестановки, затем сортировки и перегруппировки обратно. Но использование более общего стиля поучительно.
Во-первых, выберите разделитель. Используйте символ или строку, которые не встречаются в тексте для сортировки. Для этого я выбираю ;'#
.
Затем создайте регулярное выражение find и replace для извлечения поисковых терминов и построения строки для сортировки. Для этого find-what является ^(.*)\b(\d+)$
, а replace-with - $2 ;'#$0
.
Это изменяет пример ввода на:
6 ;'#steven:class3 | Pounds: 6
125 ;'#ibesom:class1 | Pounds: 125
13 ;'#heller:class1 | Pounds: 13
Теперь используйте menu => Edit => Операции со строками => Сортировать по возрастанию целых чисел. Это дает:
6 ;'#steven:class3 | Pounds: 6
13 ;'#heller:class1 | Pounds: 13
125 ;'#ibesom:class1 | Pounds: 125
Используемый метод не ограничен целыми числами. Термин сортировки может быть создан с использованием любых символов и соответствующей сортировки.
Последний шаг - удалить термин сортировки и разделитель. Используйте регулярное выражение для замены всех находок ^.*;'#
и ничего не заменяйте.
Единственная задача - создать первое регулярное выражение, чтобы сгенерировать термин сортировки и добавить его в строку. Общий план состоит в том, что find-what соответствует всей строке ввода, поэтому она начинается с ^
и заканчивается $
. Тогда в замене есть три элемента: «термин сортировки», «разделитель» и $0
. Финальная строка $0
включает всю исходную строку ввода.