- Обязательно представиться на русском языке кириллицей (заполнить поле "Имя").
- Фиктивные имена мы не приветствуем. Ивановых и Пупкиных здесь уже достаточно.
- Не надо писать свой вопрос в первую попавшуюся тему - всегда лучше создать новую тему.
- За поиск, предложение и обсуждение пиратского ПО и средств взлома - бан без предупреждения. Непонятно? - Читать здесь.
- Рекламу и частные объявления "куплю/продам/есть халтура" мы не размещаем ни на каких условиях.
- Перед тем как что-то написать - читать здесь, а затем здесь и здесь.
- Не надо писать в ЛС администраторам свои технические вопросы. Администраторы форума отлично знают как работает форум, а не все-все контроллеры, о которых тут пишут.
Операции в свойствах текста-заполнителя. Регулярные выражения
Модератор: специалисты Eplan
-
- знаток Eplan
- Сообщения: 260
- Зарегистрирован: 12 июн 2014, 06:17
- Имя: Мишкин Иван
- Страна: Россия
- город/регион: Самара
- Благодарил (а): 16 раз
- Поблагодарили: 71 раз
Re: Регулярные выражения в текстах замены, фильтрах и прочее
Ещё можно использовать в фильтрах.
Но выше, каюсь, был не прав. Eplan "понимает" не все символы регулярных выражений. Точно принимаются символы "*", "?", "+", "^", выражения вида "[]" (например, любая цифра - "[0-9]"). Обратный слеш (и все выражения с ним), вертикальная черта и фигурные скобки не воспринимаются как спец. символы регулярного выражения. Пробовал как с русским, так и с английским интерфейсом диалоговых окон.
Но выше, каюсь, был не прав. Eplan "понимает" не все символы регулярных выражений. Точно принимаются символы "*", "?", "+", "^", выражения вида "[]" (например, любая цифра - "[0-9]"). Обратный слеш (и все выражения с ним), вертикальная черта и фигурные скобки не воспринимаются как спец. символы регулярного выражения. Пробовал как с русским, так и с английским интерфейсом диалоговых окон.
-
- знаток Eplan
- Сообщения: 260
- Зарегистрирован: 12 июн 2014, 06:17
- Имя: Мишкин Иван
- Страна: Россия
- город/регион: Самара
- Благодарил (а): 16 раз
- Поблагодарили: 71 раз
Re: Регулярные выражения в текстах замены, фильтрах и прочее
В данном случае, первое что приходит на ум - в шифр документа внести свойство блока, а в формате свойства блока использовать вывод вида документа с заменой текста.
-
- знаток Eplan
- Сообщения: 973
- Зарегистрирован: 18 ноя 2013, 08:32
- Имя: Сергей
- Страна: Россия
- Благодарил (а): 90 раз
- Поблагодарили: 116 раз
Re: Регулярные выражения в текстах замены, фильтрах и прочее
Сейчас шифр и формируется из свойства блока, но точка(или пробел) между номером проекта и видом документа идет как разделитель.Выходит разделитель надо убирать,а таблицу замены делать для всех Видов документов,а их штук 30. Щас пока запускаю Ё, можно ли там стока свойств занести в таблицу замены?:)
Сам же и отвечу-свойств получилось 42,все "влезло",способ работает
Сам же и отвечу-свойств получилось 42,все "влезло",способ работает
-
- знаток Eplan
- Сообщения: 260
- Зарегистрирован: 12 июн 2014, 06:17
- Имя: Мишкин Иван
- Страна: Россия
- город/регион: Самара
- Благодарил (а): 16 раз
- Поблагодарили: 71 раз
Re: Регулярные выражения в текстах замены, фильтрах и прочее
Как вариант:
1. ФорматСвойстваБлока[10] -- только <1520> Вид документа, замена Э3, Э4... на текст "Delme"
2. ФорматСвойстваБлока[ШифрДокумента] -- вместо <1520> вносим СвойствоБлока[10] + СкрытьСвойствоЕсли СвойствоИмеетСледующееЗначение: "Delme".
Тогда в тексте замены потребуется перечислить только варианты текста, которые требуется подавить. Вчера пробовал - вроде такой финт ушами работает.
1. ФорматСвойстваБлока[10] -- только <1520> Вид документа, замена Э3, Э4... на текст "Delme"
2. ФорматСвойстваБлока[ШифрДокумента] -- вместо <1520> вносим СвойствоБлока[10] + СкрытьСвойствоЕсли СвойствоИмеетСледующееЗначение: "Delme".
Тогда в тексте замены потребуется перечислить только варианты текста, которые требуется подавить. Вчера пробовал - вроде такой финт ушами работает.
-
- знаток Eplan
- Сообщения: 973
- Зарегистрирован: 18 ноя 2013, 08:32
- Имя: Сергей
- Страна: Россия
- Благодарил (а): 90 раз
- Поблагодарили: 116 раз
Re: Регулярные выражения в текстах замены, фильтрах и прочее
Свойство блока в свойстве блока :) Хитро,буду иметь ввиду.Хотя как по мне через чур запутано.Вариант с таблицей замены мне больше нравится.И проще,и если вдруг где какой новый документ добавляется-редактировать или новый формат задавать проще.
Но все равно спасибо,даже не думал в эту сторону :)
Но все равно спасибо,даже не думал в эту сторону :)
-
- знаток Eplan
- Сообщения: 456
- Зарегистрирован: 15 май 2012, 12:36
- Имя: Чистякова Оксана
- Страна: Россия
- город/регион: Череповец
- Благодарил (а): 4 раза
- Поблагодарили: 17 раз
Re: Регулярные выражения в текстах замены, фильтрах и прочее
Добрый день, коллеги!
Если в тексте замены поставить Оператором "Регулярное выражение", то активна галка в столбце "Продолжить". Кто знает назначение этого столбца? В хелпе информации не нашла.
Ранее была информация, что Е отрабатывает цепочку до первого совпадения в строке и отваливается. Может, используя галку происходит дальнейший поиск и замена?
При использовании арифметических знаков галка в столбце неактивна.
Если в тексте замены поставить Оператором "Регулярное выражение", то активна галка в столбце "Продолжить". Кто знает назначение этого столбца? В хелпе информации не нашла.
Ранее была информация, что Е отрабатывает цепочку до первого совпадения в строке и отваливается. Может, используя галку происходит дальнейший поиск и замена?
При использовании арифметических знаков галка в столбце неактивна.
______________________________________________________
Я слышу и забываю. Я вижу и запоминаю. Я делаю и понимаю.
Я слышу и забываю. Я вижу и запоминаю. Я делаю и понимаю.
-
- знаток Eplan
- Сообщения: 260
- Зарегистрирован: 12 июн 2014, 06:17
- Имя: Мишкин Иван
- Страна: Россия
- город/регион: Самара
- Благодарил (а): 16 раз
- Поблагодарили: 71 раз
Re: Регулярные выражения в текстах замены, фильтрах и прочее
Действительно, в Help_Ru v2.4 часть текста помощи убрали. Привожу отрывок из Help_Ru_v2.5:
Продолжить:
Установите этот флажок, если хотите, чтобы несколько регулярных выражений были поочередно выполнены. Таким образом, например, можно заменить несколько пробелов подряд.
Если регулярное выражение должно выполняться только единожды, снимите этот флажок (настройка по умолчанию).
Пример:
Свойство Технические параметры (Ид. 20027) выбрано в качестве элемента формата свойства блока. В этом свойстве содержатся, например, следующие значения: напряжение 24 В, пост. ток 12 В или мощность 2,5 Вт. Теперь необходимо вырезать из этих значений только цифры и отобразить их.
Сначала для свойства Технические параметры поля Текст замены в диалоговом окне Формат: Свойство блока устанавливается значение "Использовать таблицу 1".
Чтобы заменить текст в свойствах блока, задайте затем в свойствах проекта для свойства Свойство блока: Текст замены [1] следующую таблицу:
Оператор Исходный текст Текст вывода Продолжить
Регулярное выражение ^[^0-9]* x
Регулярное выражение [^0-9]*$
Далее происходит замена значений свойства Технические параметры на тексты вывода 24, 12 или 2,5.
-
- знаток Eplan
- Сообщения: 973
- Зарегистрирован: 18 ноя 2013, 08:32
- Имя: Сергей
- Страна: Россия
- Благодарил (а): 90 раз
- Поблагодарили: 116 раз
Регулярные выражения в текстах замены, фильтрах и прочее
Иногда бывает так что имя какого нить устройства или кабеля заковыристо написано (пример: AK1-IPR2-A1-1), и при копировании если Ё указать что надо нумеровать устройства, иногда можно получить ОУ такого вида: ?AK1-IPR2-A1-2.
Это ОУ у меня выводится в отчет и хочу в таблицах текста замены пасти это дело. Т.е. если свойство(не важно какое,свойство блока или ОУ) начинается с "?" то текст замены какой нить типа "ошибка!неправильное имя!".
Но все никак не могу понять как объяснить в регулярных выражениях это все. ОУ может быть каким угодно, кол-во символов в нем тоже, но если первый символ знак вопроса "?", заменять это свойство на то что указано в таблице замены...
Так оказывается в "Оператор" надо было = заменить на Регулярное выражение. Получилось заменить в тексте "?12345" на "ошибка!неправильное имя!12345",т.е. заменился только символ знака вопроса, а как сделать чтобы все значение "?12345" стало "ошибка!неправильное имя!" ?
Это ОУ у меня выводится в отчет и хочу в таблицах текста замены пасти это дело. Т.е. если свойство(не важно какое,свойство блока или ОУ) начинается с "?" то текст замены какой нить типа "ошибка!неправильное имя!".
Но все никак не могу понять как объяснить в регулярных выражениях это все. ОУ может быть каким угодно, кол-во символов в нем тоже, но если первый символ знак вопроса "?", заменять это свойство на то что указано в таблице замены...
Так оказывается в "Оператор" надо было = заменить на Регулярное выражение. Получилось заменить в тексте "?12345" на "ошибка!неправильное имя!12345",т.е. заменился только символ знака вопроса, а как сделать чтобы все значение "?12345" стало "ошибка!неправильное имя!" ?
-
- знаток Eplan
- Сообщения: 16
- Зарегистрирован: 24 фев 2014, 15:49
- Имя: Алексей
- Страна: Россия
- город/регион: Санкт-Петербург
- Благодарил (а): 1 раз
- Поблагодарили: 1 раз
Регулярные выражения в текстах замены, фильтрах и прочее
А вот еще пример использования регулярных выражений
viewtopic.php?f=78&p=71908#p71908
viewtopic.php?f=78&p=71908#p71908
-
- знаток Eplan
- Сообщения: 973
- Зарегистрирован: 18 ноя 2013, 08:32
- Имя: Сергей
- Страна: Россия
- Благодарил (а): 90 раз
- Поблагодарили: 116 раз
Операции в свойствах текста-заполнителя. Регулярные выражения
Кто подскажет как правильнее записать два регулярных выражения в тексте замены?
Есть данные которые попадают в отчет "K04-0305,K04-0306" (без кавычек). Так удобней уместить в одной строчке, а вот для схемы хочу "разбить" эти данные через свойства блока и текст замены. Т.е. первое регулярное выражение должно найти данные ДО запятой, а второе ПОСЛЕ запятой, и таким образом на схеме я получу 2 записи, вместо одной через запятую.
Есть данные которые попадают в отчет "K04-0305,K04-0306" (без кавычек). Так удобней уместить в одной строчке, а вот для схемы хочу "разбить" эти данные через свойства блока и текст замены. Т.е. первое регулярное выражение должно найти данные ДО запятой, а второе ПОСЛЕ запятой, и таким образом на схеме я получу 2 записи, вместо одной через запятую.
-
- знаток Eplan
- Сообщения: 1457
- Зарегистрирован: 17 окт 2012, 11:24
- Имя: Виталий
- Страна: Беларусь
- город/регион: Минск
- Благодарил (а): 61 раз
- Поблагодарили: 182 раза
Операции в свойствах текста-заполнителя. Регулярные выражения
Еплан не поддерживает автоматическую замену в регулярных выражениях, т.е. он может либо пропустить данную строку, либо нет, либо при соответствии заменить ее на другую, но используя тексты замены (которые предварительно определены). Данный вариант потребует много ручной работы, и не будет универсальным.
-
- знаток Eplan
- Сообщения: 973
- Зарегистрирован: 18 ноя 2013, 08:32
- Имя: Сергей
- Страна: Россия
- Благодарил (а): 90 раз
- Поблагодарили: 116 раз
Операции в свойствах текста-заполнителя. Регулярные выражения
Хорошо, а если так - в тексте "K04-0305, K04-0306" найти весь текст после запятой и заменить его на "", а во втором тексте замены найти и заменить на пусто "" весь текст до запятой.
Просто найти и заменить на пустое значение одну лишь запятую получилось, терь вопрос как отловить текст До и После нее?
Просто найти и заменить на пустое значение одну лишь запятую получилось, терь вопрос как отловить текст До и После нее?
-
- знаток Eplan
- Сообщения: 304
- Зарегистрирован: 07 окт 2016, 07:31
- Имя: Михаил
- Страна: Россия
- город/регион: Екатеринбург
- Благодарил (а): 133 раза
- Поблагодарили: 89 раз
Операции в свойствах текста-заполнителя. Регулярные выражения
Весть текст до запятой в онлайн-калькуляторе регулярных выражений отлавливается таким выражением: [^,]*
Eplan 2.6 HF4
-
- знаток Eplan
- Сообщения: 973
- Зарегистрирован: 18 ноя 2013, 08:32
- Имя: Сергей
- Страна: Россия
- Благодарил (а): 90 раз
- Поблагодарили: 116 раз
Операции в свойствах текста-заполнителя. Регулярные выражения
Вставил такое регулярное выражение в текст замены: [,\s][^,]*
Из текста: К01-0101, К01-0102
Получил текст ДО запятой: К01-0101
т.е. еще и саму запятую и пробел "убрал"
Теперь осталось сделать тоже самое с текстом После запятой))
Из текста: К01-0101, К01-0102
Получил текст ДО запятой: К01-0101
т.е. еще и саму запятую и пробел "убрал"
Теперь осталось сделать тоже самое с текстом После запятой))
-
- знаток Eplan
- Сообщения: 304
- Зарегистрирован: 07 окт 2016, 07:31
- Имя: Михаил
- Страна: Россия
- город/регион: Екатеринбург
- Благодарил (а): 133 раза
- Поблагодарили: 89 раз
Операции в свойствах текста-заполнителя. Регулярные выражения
Я получил текст после запятой, но с пробелом впереди вот таким выражением: [\s][^,]*
От пробела не смог избавиться.
Кстати, выражением [,\s][^,]*, о котором вы говорите постом выше, я не смог получить выражение ДО запятой. Напротив, оно даёт выражение ПОСЛЕ запятой вместе с самой запятой. Я проверяю в онлайн-калькуляторе регулярных выражений здесь http://planetcalc.ru/708/. Возможно, еплан иначе интерпретирует.
От пробела не смог избавиться.
Кстати, выражением [,\s][^,]*, о котором вы говорите постом выше, я не смог получить выражение ДО запятой. Напротив, оно даёт выражение ПОСЛЕ запятой вместе с самой запятой. Я проверяю в онлайн-калькуляторе регулярных выражений здесь http://planetcalc.ru/708/. Возможно, еплан иначе интерпретирует.
Eplan 2.6 HF4
-
- знаток Eplan
- Сообщения: 973
- Зарегистрирован: 18 ноя 2013, 08:32
- Имя: Сергей
- Страна: Россия
- Благодарил (а): 90 раз
- Поблагодарили: 116 раз
Операции в свойствах текста-заполнителя. Регулярные выражения
Странно, у меня с "вашим" регулярным выражением ничего не заменяется (скрин ниже). А вот с "моим" предыдущим все ОК (опять же с точки зрения логики Ё):
Текст замены2: ваше
Текст замены1: мое выражениеТекст замены2: ваше
У вас нет необходимых прав для просмотра вложений в этом сообщении.
-
- знаток Eplan
- Сообщения: 304
- Зарегистрирован: 07 окт 2016, 07:31
- Имя: Михаил
- Страна: Россия
- город/регион: Екатеринбург
- Благодарил (а): 133 раза
- Поблагодарили: 89 раз
Операции в свойствах текста-заполнителя. Регулярные выражения
Вот ещё в хэлпе есть интересный пример с регулярным выражением, которому я не могу дать логическое объяснение. Может, он поможет или направит в нужное русло:
Обратил внимание, что в последнем столбце (Продолжить) стоит галочка напротив первого регулярного выражения. Я не проверял, но, видимо, можно последовательно применять регулярные выражения к исходному тексту.У вас нет необходимых прав для просмотра вложений в этом сообщении.
Eplan 2.6 HF4