Страница 1 из 1

Групповые операции с атрибутивными данными слоя

Добавлено: 01 фев 2021, 09:27
Вадим Зыков
Групповые операции с атрибутивными данными слоя. Выделение, копирование, присвоение, переименование и д.р.



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

1. Найти все строчки с "Вентилятор" и "Вентиляторы"

Вентиляторы{0,1}

Вентилятор - обязательная часть
ы{0,1} - буква "ы" один или ноль раз

2. Найти все строчки "Винтеляторы" или "Вентиляторы"

В(е|и)нтилятор

(е|и) - буква "е" или "и".

3. Найти все записи где есть строчки "Вентилятор №". И номер от 5 до 9

Вентилятор\s№0*(5|6|7|8|9)

Вентилятор - обязательная часть
\s - пробел
0* - любое количество ведущих нулей (в том числе ни одного)
(5|6|7|8|9) - число

или

Вентилятор\s№0*[5-9]

[5-9] - диапазон.

К сожалению, диапазон может быть только из чисел от 0 до 9.

Если цифры больше 9, то их следует указывать через "|" перечислением. Диапазон в этом случае не возможен.

Пример: (10|11|12|13|14).

4. Найти все строчки где есть "Вентилятор" любой символ или символы и далее цифры от 3 до 8

Вентилятор(.*?)(3|4|5|6|7|8)

Вентилятор - обязательная часть
(.*?) - любой символ или никакого символа
(3|4|5|6|7|8) - цифра от 3 до 8

Единственно, (.*?) касается и пробела тоже.
Если нужно, чтобы любой символ был после пробела, то в шаблоне нужно указать пробел явно:

Вентилятор\s(.*?)(3|4|5|6|7|8)

Вентилятор - обязательная часть
\s - пробел
(.*?) - любое количество символов или ничего
(3|4|5|6|7|8) - цифра от 3 до 8

Ряд (3|4|5|6|7|8) можно заменить на диапазон [3-8]

5. Найти все строчки где есть "Вентилятор" любой символ или символы и далее цифры от 3 до 8 + цифры от 10 до 15

Вентилятор\s([^\d]*)[0]*([3-8]|10|11|12|13|14|15)$

Вентилятор - понятно что
\s - пробел
([^\d]*) - любое количество символов, но не цифры
[0]* - любое количество ведущих нулей
[3-8]$ - одна цифра от 3 до 8, и дальше ничего не должно быть
(10|11|12|13|14|15)$ - числа 10-15, и после них ничего нет