Easyelectronics.ru

Электроника для всех
Текущее время: 25 янв 2022, 09:15

Часовой пояс: UTC + 5 часов



JLCPCB – Прототипы печатных плат за $2/5шт. два слоя. $5/5шт. четыре слоя
Крупнейший производитель печатных плат и прототипов. Более 600000 клиентов и свыше 10000 заказов в день!
Получите скидку на почтовую отправку при первом заказе в JLCPCB!

Начать новую тему Ответить на тему  [ Сообщений: 16 ] 
Автор Сообщение
 Заголовок сообщения: Regex
СообщениеДобавлено: 03 ноя 2021, 07:31 
Старожил
Аватара пользователя

Зарегистрирован: 11 апр 2016, 18:04
Сообщения: 4378
Откуда: Китай, Пекин
Реализую пост-кодогенерацию, предоставляю пользователю возможность в простенькой форме изменить имена переменных, или вставить/удалить куски нагенереного кода, скопировать файлы непосредственно в папки проектов....

естественно - формировать желания по замене строк пользователю придется на реджексах.

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

интересно с местными тут такая же картина? м? волнуюсь.

_________________
unirail.org


Последний раз редактировалось cheblin 03 ноя 2021, 08:52, всего редактировалось 1 раз.

Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Regex
СообщениеДобавлено: 03 ноя 2021, 08:19 
Старожил

Зарегистрирован: 02 авг 2021, 21:34
Сообщения: 574
.


Последний раз редактировалось KilkennyCat 28 ноя 2021, 18:35, всего редактировалось 1 раз.

Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Regex
СообщениеДобавлено: 03 ноя 2021, 09:29 
Старожил
Аватара пользователя

Зарегистрирован: 11 апр 2016, 18:04
Сообщения: 4378
Откуда: Китай, Пекин
Цитата:
А как его можно знать слабо или сильно

элементарно. совершенно не знают некоторые аспекты например lookup.

Цитата:
натыкивания кучки

натыкиванием много не сделаешь. только примитивное. такая проблема

_________________
unirail.org


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Regex
СообщениеДобавлено: 03 ноя 2021, 09:52 
Старожил
Аватара пользователя

Зарегистрирован: 13 дек 2010, 23:15
Сообщения: 2711
Откуда: Киев
Regex мощная штука. Но, имхо придумывали его альтернативно одарённые ибо читабельность кхм... желает быть лучше.
И не говорите чтт тут http://www.ex-parrot.com/~pdw/Mail-RFC822-Address.htmlвам все понятно, не поверю.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Regex
СообщениеДобавлено: 03 ноя 2021, 10:01 
Старожил
Аватара пользователя

Зарегистрирован: 11 апр 2016, 18:04
Сообщения: 4378
Откуда: Китай, Пекин
Цитата:
все понятно, не поверю

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

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

но это не точно.
я предпочитаю микс. вкрапления regex при обычном программировании.

_________________
unirail.org


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Regex
СообщениеДобавлено: 03 ноя 2021, 12:07 
Старожил

Зарегистрирован: 19 мар 2013, 19:37
Сообщения: 3024
Откуда: Санкт-Петербург
"Если у вас проблема, которая решается регэкспом – у вас две проблемы".
(если что, сам активно пользуюсь – поиск в редакторе по умолчанию переключён на регэкспы, sed, grep, но всё "на минималках", без backreferences и тому подобного)

А в вашей задаче нет возможности собрать AST и проводить операции на нём? (Кто сказал "xpath"? :-))


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Regex
СообщениеДобавлено: 03 ноя 2021, 12:24 
Старожил
Аватара пользователя

Зарегистрирован: 11 апр 2016, 18:04
Сообщения: 4378
Откуда: Китай, Пекин
Цитата:
без backreferences и тому подобного

во-во это ответ на вопрос выше - "как можно реджекс знать частично..."
Цитата:
А в вашей задаче нет возможности собрать AST и

Всё можно.
однако достаточно много можно сделать используя просто regex, и даже банальный Find & Replace
под это большинство кейсов собственно и подстраиваюсь.

_________________
unirail.org


Последний раз редактировалось cheblin 03 ноя 2021, 12:52, всего редактировалось 1 раз.

Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Regex
СообщениеДобавлено: 03 ноя 2021, 12:44 
Старожил

Зарегистрирован: 19 мар 2013, 19:37
Сообщения: 3024
Откуда: Санкт-Петербург
Кстати, раз уж трындим про регэкспы: я, честно говоря, не уверен, что бэкреференсы вообще сохраняют их "регулярность". В смысле, нормальный регэксп превращается в nfa и (если движок регэкспов реализован через nfa) отрабатывает за гарантированное время (см. старый прикол с перловыми регэкспами – https://swtch.com/~rsc/regexp/regexp1.html ).
Не помню, что из перловых наворотов вписывается в алгоритм построения Томпсона.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Regex
СообщениеДобавлено: 03 ноя 2021, 12:52 
Старожил

Зарегистрирован: 19 мар 2013, 19:37
Сообщения: 3024
Откуда: Санкт-Петербург
Ну а про применение: когда я использую их сам – я могу и проверить, что они корректно отработают и не подвиснут, как перловые на примере из статьи. А вот юзеру хочется дать продукт, который не даёт неожиданных результатов.
Впрочем, у вас эта задача упрощается тем, что при кодогенерации можно гарантировать какие-то свойства текста – например, уникальность имён переменных или даже уникальные метки начала и конца блока (чтобы, скажем, выделять целый if или while простым запросом).


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Regex
СообщениеДобавлено: 03 ноя 2021, 13:02 
Старожил
Аватара пользователя

Зарегистрирован: 11 апр 2016, 18:04
Сообщения: 4378
Откуда: Китай, Пекин
да правильно понимаете.

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

сейчас сижу придумываю формат файла в котором можно было бы удобно описывать действия.

_________________
unirail.org


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Regex
СообщениеДобавлено: 03 ноя 2021, 13:12 
Старожил

Зарегистрирован: 19 мар 2013, 19:37
Сообщения: 3024
Откуда: Санкт-Петербург
Куб такой куб. Мне в своё время особенно понравилось, что при генерации под, кажется, Atollic он при _каждой_ кодогенерации удваивал размер файла проекта. Такое регэкспом фиксить неудобно)
(решалось емнип просто открытием и пересохранением)


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: RegEx... напусти тумана на Маскву
СообщениеДобавлено: 03 ноя 2021, 15:26 
Старожил

Зарегистрирован: 02 май 2015, 16:16
Сообщения: 2445
не надо использовать "текстовый редактор для регулярных выражений"
Изображение
отсюда https://habr.com/ru/post/545150/

надо использовать правильную среду программирования
Изображение

Цитата:
кстати тем, кому не нравится код который генерирует куб, и для полного счастья достаточно небольших изменений их можно делать на автомате используя regex.
в принципе так работает декомпилятор ассемблера... замена многострочных шаблонов в однострочную Функцию на ЯВУ.
я иногда использую многострочные регулярные выражения для чистки от мусора ассемблерного кода после ИДЫ
Изображение


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Regex
СообщениеДобавлено: 03 ноя 2021, 17:24 
Старожил
Аватара пользователя

Зарегистрирован: 11 апр 2016, 18:04
Сообщения: 4378
Откуда: Китай, Пекин
1) прежде чем постить картинки разберись, что на ней и как.
а на ней есть даты - недопустимые даже для приведённого реджекса

2)и да .... 31 февраля. выше писал, про молоток и гвозди.

3) наиболее внятно про regex

_________________
unirail.org


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Regex
СообщениеДобавлено: 03 ноя 2021, 20:36 
Старожил

Зарегистрирован: 02 май 2015, 16:16
Сообщения: 2445
cheblin писал(а):
1) прежде чем постить картинки разберись, что на ней и как.
а на ней есть даты - недопустимые даже для приведённого реджекса
...
3) наиболее внятно про regex...
картинка не моя... а любителей Изображение с хабра
если "IT"шник не умеет пользоваться ТоталКомандиром я его серьёзно не воспринимаю
надо переименовать группу файлов... оптом...
это тяжело...

смысл наводить туман... среда программирования должна иметь возможности просто сконфигурировать мышью все наши фантазии
Изображение
а не пытаться спецсимволами раскладывать Изображение в тексте программы при неудачной замене того, что не надо было менять, но попало в шаблон


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Regex
СообщениеДобавлено: 03 ноя 2021, 20:50 
Старожил

Зарегистрирован: 02 авг 2021, 21:34
Сообщения: 574
.


Последний раз редактировалось KilkennyCat 28 ноя 2021, 18:35, всего редактировалось 1 раз.

Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Regex
СообщениеДобавлено: 04 ноя 2021, 10:48 
Старожил
Аватара пользователя

Зарегистрирован: 28 янв 2010, 11:56
Сообщения: 4246
Откуда: Винница
cheblin писал(а):
кстати тем, кому не нравится код который генерирует куб, и для полного счастья достаточно небольших изменений их можно делать на автомате используя regex.
Куб куда ни шло, а вот Ghidra... :(( Ручная обработка отбирает прорву времени.

_________________
Китайская комплектация - европейское качество!


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 16 ] 


Часовой пояс: UTC + 5 часов


Кто сейчас на конференции

Сейчас этот форум просматривают: Google [Bot]


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  

Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB