Групповые операции с атрибутивными данными слоя
-
Автор темы
- Интеграл
- Сообщения: 5640
- Зарегистрирован: 27 июн 2005, 13:41
- Откуда: Санкт-Петербург
- Благодарил (а): 249 раз
- Поблагодарили: 2792 раза
- Контактная информация:
Групповые операции с атрибутивными данными слоя
Групповые операции с атрибутивными данными слоя. Выделение, копирование, присвоение, переименование и д.р.
Примеры использования 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, и после них ничего нет
Примеры использования 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, и после них ничего нет
Интегрируй форум в Яндекс
P.S. Вопросы по работе с программами или выбору программ прошу писать либо на форуме в соответствующих темах, либо по электронной почте. В ЛС на такие вопросы не отвечаю. Прошу понять правильно.
P.S. Вопросы по работе с программами или выбору программ прошу писать либо на форуме в соответствующих темах, либо по электронной почте. В ЛС на такие вопросы не отвечаю. Прошу понять правильно.