Мой самый сильный пробел в программировании — это RegEx. Знаю, что регулярные выражения — мощный инструмент, но не могу я понять эту абракадабру!!
Есть что почитать (легкое и доступное для понимания)?
Здравствуйте, Mihal9, Вы писали:
M>Мой самый сильный пробел в программировании — это RegEx. Знаю, что регулярные выражения — мощный инструмент, но не могу я понять эту абракадабру!! M>Есть что почитать (легкое и доступное для понимания)?
В проекте недавнем регулярки были не в почёте — потому как типа можно их написать небезопасными. Да и недавно тут напоролся что регулярку надо было пересоздавать перед каждым использованием, ибо иначе она — глючила...
Здравствуйте, Mihal9, Вы писали:
M>Мой самый сильный пробел в программировании — это RegEx. Знаю, что регулярные выражения — мощный инструмент, но не могу я понять эту абракадабру!!
Регулярные выражения — это шаблон для строк для поиска соответствий этому шаблону. Ну типа как для поиска файлов, например, *.exe — найти все экзешники и т.п. Только синтаксис замороченнее, да.
M>Есть что почитать (легкое и доступное для понимания)?
Дохрена вообще-то литературы. Есть среди нее, так сказать, классика. Вроде Фридл. Дж "Регулярные выражения", валяется много где в сети. По-моему там автор постарался предельно доходчиво разжевать что это такое и с чем едят. Можешь попробовать поискать другие книги. Можно встретить неплохие объяснения в книгах по языку Perl, например, глава "регулярные выражения" в книге Шварц, Кристиансен "Изучаем Perl" — там конечно Perl-специфика, но в свое время мне это очень доходчивым показалось.
Здравствуйте, Mihal9, Вы писали:
M>Мой самый сильный пробел в программировании — это RegEx. Знаю, что регулярные выражения — мощный инструмент, но не могу я понять эту абракадабру!!
Так больше и не надо: https://chat.openai.com/chat -> "regex which does X" -> "make tests for this regex"
Счастье! Если объясненье от ИИ непонятно, то можно вставить то, что он сгенерил в объяснялку типу такой.
Если есть проблемы с безопасностью, то лучше писать полноценный парсер.
Здравствуйте, Mihal9, Вы писали:
M>Мой самый сильный пробел в программировании — это RegEx. Знаю, что регулярные выражения — мощный инструмент, но не могу я понять эту абракадабру!! M>Есть что почитать (легкое и доступное для понимания)?
Отличная книга "Классика программирования алгоритмы, языки, автоматы, компиляторы" Мозгового. Там треть посвящена регулярным выражениям и конечным автоматам для парсинга.
Здравствуйте, Mihal9, Вы писали:
M>Мой самый сильный пробел в программировании — это RegEx. Знаю, что регулярные выражения — мощный инструмент, но не могу я понять эту абракадабру!! M>Есть что почитать (легкое и доступное для понимания)?
Мне само зашло — НЕ подобрать регулярку для текста, как предлагают многие онлайн-помощники регулярок. А наоборот — на основе регулярного выражения вывести рандомные тексты, которые ему соответствуют. Тогда сразу становится понятна суть.
Здравствуйте, Mihal9, Вы писали:
M>Мой самый сильный пробел в программировании — это RegEx. Знаю, что регулярные выражения — мощный инструмент, но не могу я понять эту абракадабру!! M>Есть что почитать (легкое и доступное для понимания)?
Ну лучше всего понять, что такое регулярные грамматики (по Хомскому) и регулярные конечные автоматы.
Сами по себе regexp-ы — это, всего лишь, довольно неуклюжий синтаксис для записи этих самых регулярных грамматик. Если понимаешь смысл, синтаксис освоить довольно несложно.
Здравствуйте, Mihal9, Вы писали:
M>Мой самый сильный пробел в программировании — это RegEx. Знаю, что регулярные выражения — мощный инструмент, но не могу я понять эту абракадабру!! M>Есть что почитать (легкое и доступное для понимания)?
попробуй в гугле "regex for dummies" или в яндексе "регуларные выражения для начинающих"
Здравствуйте, Mihal9, Вы писали:
M>Мой самый сильный пробел в программировании — это RegEx. Знаю, что регулярные выражения — мощный инструмент, но не могу я понять эту абракадабру!! M>Есть что почитать (легкое и доступное для понимания)?
Читать без толку. Как освоить:
1. потратить на написание различных регэкспов несколько месяцев
2. написать движок регэкспов
Здравствуйте, Mihal9, Вы писали:
M>Мой самый сильный пробел в программировании — это RegEx. Знаю, что регулярные выражения — мощный инструмент, но не могу я понять эту абракадабру!! M>Есть что почитать (легкое и доступное для понимания)?
Мне хватило такой вещи http://citforum.ru/internet/articles/regexp_tutorial/ , но к тому времени как я это читал, я был знаком с xpath и простейшими регулярками из django(urls)
Здравствуйте, Mihal9, Вы писали:
M>Есть что почитать (легкое и доступное для понимания)?
Это бесполезно. Нужна конкретная задача, без задачи не получится.
Меня как-то по молодости попросили свести в табличку перечень труб из строительного проекта — текста с вкраплениями наименований страниц на 700, а там знаешь ПЭ 300х3 или ст250/9 и т.п. Проект делали куча народа и каждый писал как привык, типа вроде по госту, но по разному. Поскольку глаз замыливается быстро, пришлось писать регулярку, которая пробегает по тексту и выдирает наименования труб. Вот так и освоил.
Здравствуйте, Mihal9, Вы писали:
M>Мой самый сильный пробел в программировании — это RegEx. Знаю, что регулярные выражения — мощный инструмент, но не могу я понять эту абракадабру!!
Здравствуйте, Michael7, Вы писали:
M>>Мой самый сильный пробел в программировании — это RegEx. Знаю, что регулярные выражения — мощный инструмент, но не могу я понять эту абракадабру!! M>Регулярные выражения — это шаблон для строк для поиска соответствий этому шаблону.
Шаблон — слишком обще. Это алгоритм поиска, в этом их и плюс и минус. Плюс в том что очень быстрые и гибкие, минус — многословные и запутанные, порождающие порой очень сложные решения.
НС>Шаблон — слишком обще. Это алгоритм поиска, в этом их и плюс и минус. Плюс в том что очень быстрые и гибкие, минус — многословные и запутанные, порождающие порой очень сложные решения.
Строго формально это действительно алгоритм. Насчет запутанности и сложности я на регулярки смотрю как на средство для облегчения и ускорения программирования. Если в какой-то момент они слишком сложными становятся, это значит, что возможно в данном месте уже лучше будет отдельный парсер написать под задачу.
Здравствуйте, Mihal9, Вы писали:
M>Мой самый сильный пробел в программировании — это RegEx. Знаю, что регулярные выражения — мощный инструмент, но не могу я понять эту абракадабру!! M>Есть что почитать (легкое и доступное для понимания)?
Поставь RegexBuddy и играйся с регэкспами, парси ими всё, с чем работаешь. Также в Фаре используй их для поиска или замены, и через годик освоишь, и уже не будешь представлять жизнь без них.
Здравствуйте, gyraboo, Вы писали:
G>Поставь RegexBuddy и играйся с регэкспами, парси ими всё, с чем работаешь. Также в Фаре используй их для поиска или замены, и через годик освоишь, и уже не будешь представлять жизнь без них.