Действие парсера «Регулярные выражения (выборка)»

Параметры действия:

Предназначение действия:

Поистине неограниченные возможности обработки значений предоставляют вам регулярные выражения.
Это действие позволяет обрабатывать текст с их помощью.

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

Подробнее про использование регулярных выражений

Возвращаемое значение: текст

 


Параметр «Шаблон Regexp»

Тип параметра: произвольное текстовое значение

Шаблон (pattern) регулярного выражения

ВАЖНО: в шаблоне регулярного выражения нельзя использовать записи вида {2} или {5} (цифра в фигурных скобках), так как парсер подсчитает это подстановочным кодом, и подставит на место значение из столбца с этим номером.

Например, если нужно задать шаблон поиска \d{4} (ищем 4 цифры подряд), то надо записать это в виде \d{4,4} (ищем цифры в количестве от 4 до 4). Суть от этого не поменяется, но парсер не воспримет запись {4,4} как подстановочный код, в отличие от записи {4}.

 

Параметр «Тип результата»

Тип параметра: выбор из списка, или ввод вручную

Примеры значений параметра: ; 0; 1; 2; , ; ; ; {NL}; {LF}; replace

Этот параметр может быть задан в одном из 4 вариантов:

  1. Если ТИП РЕЗУЛЬТАТА — числовой, то он задаёт индекс нужной части (целое число, начиная с 0) из результатов выборки Regexp
  2. Если ТИП РЕЗУЛЬТАТА — текстовая строка, то массив, полученный в результате работы функции, объединяется в одну строку, с использованием заданного текстового разделителя.
  3. Если ТИП РЕЗУЛЬТАТА не задан (пустая строка), возвращается МАССИВ значений
  4. Если ТИП РЕЗУЛЬТАТА указан как replace, выполняется замена найденных значений согласно шаблона замены (третий параметр), а текст до и после найденного остаётся как есть

Параметр «Шаблон замены»

Тип параметра: произвольное текстовое значение

Используется только в том случае, если тип результата задан как replace (замена)
Пример значения шаблона замены: $1$2 (для подстановки текста из первых 2 скобок шаблона)

Параметр «Учитывать регистр символов»

Тип параметра: выбор из списка предопределенных значений

Допустимые значения параметра: да; нет

Значение по умолчанию: нет

 

Примеры использования:

Первый параметр - шаблон Regexp - составляется на основе стандартных правил регулярных выражений.

Действие Параметр Значение
Регулярные выражения (выборка) Шаблон Regexp [\d-]+
Тип результата  
Шаблон замены  
Учитывать регистр символов нет
Исходное значение   Результат (массив)
Меня зовут Вася, мне 30 лет, мой рост 170 см, я вешу 70-75 кг, мой телефон 2-12-85-06
 
30
170
70-75
2-12-85-06

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

 

Числовой тип результата задаёт индекс нужной части (целое число, начиная с 0) из результатов выборки Regexp.
В примере ниже, мы получаем результат с индексом 2 (считая от нуля, это третье значение)

Действие Параметр Значение
Регулярные выражения (выборка) Шаблон Regexp [\d-]+
Тип результата 2
Шаблон замены  
Учитывать регистр символов нет
Исходное значение   Результат
Меня зовут Вася, мне 30 лет, мой рост 170 см, я вешу 70-75 кг, мой телефон 2-12-85-06
 
70-75

 

Указав в качестве типа результата какой-либо текст, мы получаем массив результатов, сцепленный через этот текст:

Действие Параметр Значение
Регулярные выражения (выборка) Шаблон Regexp [\d-]+
Тип результата ;
Шаблон замены  
Учитывать регистр символов нет
Исходное значение   Результат
Меня зовут Вася, мне 30 лет, мой рост 170 см, я вешу 70-75 кг, мой телефон 2-12-85-06
 
30; 170; 70-75; 2-12-85-06

 

Замена при помощи регулярных выражений, — мощнейший инструмент для парсинга
(кстати, именно на базе регулярных выражений построена эта программа-парсер)

Для выполнения замены средствами регулярных выражений, параметр тип результата выставляем равным replace, и задаём шаблон замены:

Действие Параметр Значение
Регулярные выражения (выборка) Шаблон Regexp (\d*)-[\d-]+
Тип результата replace
Шаблон замены [число через тире, начинается с $1]
Учитывать регистр символов нет
Исходное значение   Результат
Меня зовут Вася, мне 30 лет, мой рост 170 см, я вешу 70-75 кг, мой телефон 2-12-85-06
 
Меня зовут Вася, мне 30 лет, мой рост 170 см, я вешу [число через тире, начинается с 70] кг, мой телефон [число через тире, начинается с 2]

 

Можно выполнять поиск как с учётом регистра, так и без него (см. четвёртый параметр действия)

Действие Параметр Значение
Регулярные выражения (выборка) Шаблон Regexp Рос[^,\s]*
Тип результата {NL}
Шаблон замены  
Учитывать регистр символов да
Исходное значение   Результат
Россия, Ростов, росток, ростовщик, РОСНО, Ростислав, РостСельМаш
 
Россия
Ростов
Ростислав
РостСельМаш

Комментарии

Есть подсказка по Регулярным выражениям http://www.exlab.net/files/tools/sheets/regexp/regexp.png