Рассмотрим, как можно изменить или отформатировать вытягиваемые данные (вырезать какую-то часть, изменить, добавить доп текст или, например, вы хотите округлить, сгруппировать или добавить символы к цене).

Поля Модификатор и Замена.

Сначала я познакомлю вас с полями Модификатор и Замена.

Чтобы оставить текст определенной длины, мы можем использовать модификатор — (.{0,*})(.{0,}), где звездочка означает, сколько символов останется (включая пробелы и любые символы) с

Замена – $1

Чтобы добавить текст до, после или вокруг извлеченных данных, мы можем использовать

Модификатор – (^(.*)$)

Замена — any_text_before $1 any_text_after

Можно использовать один или несколько модификаторов вместе

Поле Модификатор (.{0,20})(.{0,}) а поле Замена $1  - выводится результат Samsung Galaxy Note1
Поле Модификатор (^(.*)$) а поле Замена y_txt $1 y_txt - выводится результат y_txt Samsung Galaxy Note1 y_txt

Чтобы добавить недостающий протокол в ссылку, мы можем использовать

Модификатор – ^// (если текст начинается с «//»).

Замена — https://

Чтобы изменить путь в ссылке, например, если ссылка на изображение начинается с /image/

затем заменяем /image/ на https://rockway.biz/image/

Модификатор – /image/

Замена — https://rockway.biz/image/

В следующих двух примерах я буду использовать цену со знаком доллара США US $379.05

Вот как это выглядит, данные вытянуты с сайта, как есть

Мы можем заменить один символ другим, например, знак доллара на знак цента.

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

Поле Модификатор \$ а поле Замена ¢  - выводится результат US ¢379.05

Кроме того, мы можем вырезать часть US $ в начале (первый модификатор) и добавить NZ $ в конец (второй модификатор).

Поле Модификатор (^\w+\$) а поле Замена пустое - выводится результат 379.05
Поле Модификатор $ а поле Замена NZ \$ - выводится результат 379.05 NZ $

Если вы еще не знакомы с регулярными выражениями, я рекомендую вам использовать этот ресурс для ознаколения, и этот, чтобы попробовать и протестировать его на практике.

Поля Формат и Разделитель.

Рассмотрим еще один полезный вариант и попробуем округлить, сгруппировать или добавить какие-то символы к нашим данным.

Поля Формат и Разделитель дают нам такую возможность.

Кстати, эти поля работают только с данными, состоящими из чисел без пробелов (собственно, поэтому мы в первую очередь рассмотрели поле Модификатор)

Сначала мы постараемся оставить только 379,05 и удалить часть US $ чтобы подготовить наши данные для дальнейшего использования.

Для этого мы можем использовать поле Modifier с выражением (\d+\.\d+), основанном на стандартном шаблоне регулярных выражений.

Поле Модификатор (\d+\.\d+)- выводится результат 379.05

Существует 11 символов специального шаблона, но мы рассмотрим самые важные из них:

  • 0 — печатает цифру, если она указана, 0 в противном случае

  • # — печатает цифру, если она указана, иначе ничего

  • . - указывает, где ставить десятичный разделитель

  • , — указывает, где поставить разделитель группировки

В следующих примерах мы рассмотрим как это работает на числе 379.05

Простые десятичные дроби

Если шаблон больше числа, добавляются нули, а хэши отбрасываются как в целых, так и в десятичных частях.

Поле Формат имеет значение ####.### - выводится результат 379,05
Поле Формат имеет значение 0000.000 - выводится результат 0379.050

Округление

Если десятичная часть шаблона не может содержать всю точность введенного числа, она округляется.

Здесь часть 0,05 была округлена до 0,10, а затем отброшен 0:

Поле Формат имеет значение #.# - выводится результат 379.1

Здесь часть 0,05 была округлена до 0,00 и затем отброшено, а 379 осталось прежним:

Поле Формат имеет значение # - выводится результат 379

Группировка

Разделитель группировки используется для указания подшаблона, который повторяется автоматически:

Обратите внимание, что Разделитель по умолчанию будет установлен в виде точки, а после того, как он будет установлен один раз после первых трех символов, он будет повторяться через каждые три символа в результате.

Поле Формат имеет значение 0000,000.## и поле Разделитель пустое - выводится результат 0.000.379.05
Все лишние нули слева были добавлены только для того, чтобы показать, как будет отображаться разделитель с большими числами.

Также вы можете установить любой символ в качестве разделителя (в моем примере я использовал тире)

Поле Формат имеет значение 0000,00 и поле Разделитель тире - выводится результат 00-03-79

Смешивание строковых литералов

В шаблоне можно смешивать строковые литералы:

Поле Формат имеет значение "The # number" - выводится результат "The 379 number"

Также можно использовать специальные символы в качестве строковых литералов путем экранирования:

Поле Формат имеет значение "The '#' #th" - выводится результат "The # 379th"

И, конечно же, мы можем объединить все рассмотренные варианты в одном шаблоне форматирования ;)

Вот и все, и я надеюсь, что эта статья будет вам полезна!

Вы нашли ответ?