Ответ 1
Найдите теги с регулярным выражением в разделе "Переполнение стека" и попробуйте ответить на них.
Я хотел бы изучить regex лучше, чтобы он стал для меня более естественным вариантом. Часто проблемы, которые могут быть легко решены с помощью регулярных выражений, я даже не рассматриваю их использование.
Может ли кто-нибудь направить меня к ресурсу, который дает сложные проблемы с регулярным выражением, как в проблема python, которая что-то вроде этого, но в большей части загадки, как мода:
для текстового файла с нижним и верхним регистрами, соответствуют всем строчным буквам, окруженным ровно 3 заглавными буквами.
что просто суть одной из проблем там... это нормально, если проблемы не так очевидны, как пример.
изменить: только для уточнения... Я не ищу программное обеспечение, я ищу проблемы. Но я сделаю это wiki, чтобы мы могли получить как можно больше ресурсов.
Черт... тонна вещей на regexlib
Найдите теги с регулярным выражением в разделе "Переполнение стека" и попробуйте ответить на них.
Могу ли я предложить что-то другое, чтобы практиковать регулярное выражение из моего личного опыта?
Как насчет того, чтобы применить его во время работы, например, вы просто объединили какой-то код, и у вас возникли конфликты, которые вы случайно отметили как разрешенные? Как я могу найти все файлы в конфликте? Напишите регулярное выражение для поиска кода для символов конфликта (<<<< ====
и т.д.)
Другой пример: кто-то реорганизовал класс, в котором вы используете весь свой код, его называли foo.bar.baz;
, теперь он bar.baz.foo
; напишите регулярное выражение, чтобы найти и заменить все первое со второго.
Эти примеры могут быть или не иметь отношения к вашей работе, но я уверен, что вы столкнетесь с необходимостью использовать регулярные выражения в свой день, чтобы выполнять дневные действия. Когда вы столкнетесь с этим, будьте смелыми, используйте регулярные выражения:) Это немного замедлит вас, но как только вы становитесь более комфортными, вы достигнете своей цели.
Я очень рекомендую Expresso (http://www.ultrapico.com/Expresso.htm), особенно если вы используете .NET. Это хорошо для построения и анализа регулярных выражений, а также для генерации кода. Это спасло меня много, много часов.
Вы можете найти некоторые драгоценности на сайте конкурсных программ: здесь. Разумеется, они не характерны для регулярных выражений, но есть некоторые из них, решения которых попадают в эту область.
Вы можете попробовать RegexCoach. Это позволяет вам интерактивно экспериментировать с регулярными выражениями против вашей собственной целевой строки.
Работайте в командной строке (или в оболочном редакторе окон, например, Acme или Wily), и используйте sed и awk для преобразования данных, с которыми вы работаете, из своей необработанной формы в форматы, в которых вы хотели бы ее увидеть, или форматы, в которых нуждаются другие программы. Поскольку sed и awk используют регулярные выражения, чтобы находить линии для работы (по шаблону), вы будете развивать свои навыки одновременно с изучением этих инструментов.
Я предлагаю работать в командной строке, потому что каждый бит данных и скриптов есть текст, который что-либо с вами должен найти и обрабатывать, часто из гораздо большего файла. Таким образом, вы также можете использовать регулярные выражения grep, чтобы уменьшить количество строк, но обычно я использую
sed -n -e '/regexp/p'
чтобы найти строки, так как я могу обновить его позже с помощью замены
sed -e '/lineregexp/s,oldregex,newtext,'
Для действительно расширенного использования вы можете использовать sed для обновления скриптов во время выполнения вместо кодирования в сложных операциях if/case или в командной строке или даже изменить структуру script, но выходящую за рамки этого ответа.
Изменить: удалить p из второго примера.
Используйте этот сайт, чтобы узнать Regex
http://qntm.org/files/re/re.html
и для практики используйте этот сайт
http://www.regexr.com/