Подтвердить что ты не робот

Регулярное регулярное выражение

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

Может ли кто-нибудь направить меня к ресурсу, который дает сложные проблемы с регулярным выражением, как в проблема python, которая что-то вроде этого, но в большей части загадки, как мода:

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

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

изменить: только для уточнения... Я не ищу программное обеспечение, я ищу проблемы. Но я сделаю это wiki, чтобы мы могли получить как можно больше ресурсов.


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

Проблемы

Regex SW

Черт... тонна вещей на regexlib

Связанные сообщения на SO

4b9b3361

Ответ 1

Найдите теги с регулярным выражением в разделе "Переполнение стека" и попробуйте ответить на них.

Ответ 2

Могу ли я предложить что-то другое, чтобы практиковать регулярное выражение из моего личного опыта?

Как насчет того, чтобы применить его во время работы, например, вы просто объединили какой-то код, и у вас возникли конфликты, которые вы случайно отметили как разрешенные? Как я могу найти все файлы в конфликте? Напишите регулярное выражение для поиска кода для символов конфликта (<<<< ==== и т.д.)

Другой пример: кто-то реорганизовал класс, в котором вы используете весь свой код, его называли foo.bar.baz;, теперь он bar.baz.foo; напишите регулярное выражение, чтобы найти и заменить все первое со второго.

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

Ответ 3

Я очень рекомендую Expresso (http://www.ultrapico.com/Expresso.htm), особенно если вы используете .NET. Это хорошо для построения и анализа регулярных выражений, а также для генерации кода. Это спасло меня много, много часов.

Ответ 4

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

Ответ 5

Вы можете попробовать RegexCoach. Это позволяет вам интерактивно экспериментировать с регулярными выражениями против вашей собственной целевой строки.

Ответ 6

Работайте в командной строке (или в оболочном редакторе окон, например, Acme или Wily), и используйте sed и awk для преобразования данных, с которыми вы работаете, из своей необработанной формы в форматы, в которых вы хотели бы ее увидеть, или форматы, в которых нуждаются другие программы. Поскольку sed и awk используют регулярные выражения, чтобы находить линии для работы (по шаблону), вы будете развивать свои навыки одновременно с изучением этих инструментов.

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

sed -n -e '/regexp/p'

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

sed -e '/lineregexp/s,oldregex,newtext,'

Для действительно расширенного использования вы можете использовать sed для обновления скриптов во время выполнения вместо кодирования в сложных операциях if/case или в командной строке или даже изменить структуру script, но выходящую за рамки этого ответа.

Изменить: удалить p из второго примера.

Ответ 7

Используйте этот сайт, чтобы узнать Regex

   http://qntm.org/files/re/re.html

и для практики используйте этот сайт

   http://www.regexr.com/