Как освоить регулярные выражения?

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

@stema ссылка плохая

MrBoJangles 23.02.2017 00:33
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
33
1
10 733
24
Перейти к ответу Данный вопрос помечен как решенный

Ответы 24

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

Попробуйте Регулятор - http://weblogs.asp.net/rosherove/pages/tools-and-frameworks-by-roy-osherove.aspx

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

Эта книга была первым, что пришло мне в голову.

J.J. 15.10.2008 20:05

@ J.J. То же самое. Это отличная книга

Eric Haskins 15.10.2008 20:35

Хорошая ссылка на что угодно, кроме упомянутой вами книги. Кроме того, этот ответ был дан на пять минут раньше вашего, и ссылка на книгу верна.

TomC 15.10.2008 20:39

Похоже, вы не можете услышать об этом, не упомянув сову.

abyx 15.10.2008 20:53

Проголосовали за скрытную гиперссылку на ваш блог, а не на книгу, на которую вы ссылаетесь.

Michael Carman 15.10.2008 23:59

Что там со ссылкой?

mattruma 16.10.2008 01:25

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

MrBoJangles 16.10.2008 03:29

Хотя бы ссылку на рассматриваемую книгу. Ваша запись в блоге не имеет ничего общего с книгой.

Andy Lester 16.10.2008 07:00

Исправлена ​​рассматриваемая ссылка. С моей стороны это была ошибка буфера обмена. Извиняюсь!

Haacked 22.10.2008 09:36

Бросьте прыгать на Haacked, люди. 11 голосов против за реалы?

MrBoJangles 04.02.2011 22:44

Начни использовать RegExBuddy!

Вот несколько хороших ресурсов:

http://regexlib.com/

http://www.regular-expressions.info/

И мой новый фаворит, https://regex101.com/. Абсолютно блестящий! На самом деле, в наши дни они слишком упрощают жизнь.

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

MrBoJangles 15.10.2008 20:34

Мне нравится www.regular-expressions.info, это здорово. Время от времени, когда я хочу использовать более неясное выражение, я обращаюсь к этому сайту ....

Cervo 19.10.2008 18:48

Perl + Roberts Perl Tutorial - источник большинства моих способностей к регулярным выражениям.

regular-expressions.info - отличный сайт, а RegexBuddy - отличный инструмент для визуализации.

Как упоминает Joe90, чтение о них уведет вас далеко;)

Лично я считаю http://www.regular-expressions.info/ отличным ресурсом для регулярных выражений.

Практика, практика, практика. Я всегда считал Страница руководства Perl по регулярным выражениям отличным справочником для всех распространенных символов и команд регулярных выражений POSIX.

Также попробуйте perldoc.perl.org/perlretut.html

Brad Gilbert 16.10.2008 07:16

Помимо уже упомянутых, вы можете попробовать Regex тренер. Я слышал об этом хорошее.

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

Ответ принят как подходящий

Я использую Освоение регулярных выражений от O'Reilly.

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

mmcdole 22.10.2008 09:42

Мой 2р: Ссылки на книги не должны быть так высоко оценены. Онлайн-ресурсы (например, те, которые я упомянул, например), которые мы можем использовать сейчас, лучше. Конечно, у меня есть лошадь на скачках.

MrBoJangles 04.02.2011 22:43

@MrBoJangles - мне нравится книжный формат для одних вещей, и мне нравится цифровой формат для других: выбор хороший :)

warren 22.07.2011 17:53

Выбор - это хорошо, и я все о весе, запахе и тактильности мертвого дерева. Я утверждаю, что доступ - это король. Итак, иерархия такова: ответы - самые лучшие (самые быстрые), ссылки на ответы - на втором месте, рекомендации по книгам - на последнем, но не без значения.

MrBoJangles 22.07.2011 19:42

Учебники:

http://www.regular-expressions.info/tutorial.html - отличный учебник по регулярному выражению

Онлайн-тестеры:

http://osteele.com/tools/reanimator/ - он анимирует ваше регулярное выражение как автомат, круто!

http://regexpal.com/ - действительно круто и удобно

http://www.fileformat.info/tool/regex.htm

Инструменты:

http://www.radsoftware.com.au/regexdesigner/

.Net:

http://msdn.microsoft.com/en-us/library/az24scfc(VS.71).aspx

Специфично для Java:

http://java.sun.com/docs/books/tutorial/essential/regex/

Специфические для GeneXus X:

http://wiki.gxtechnical.com/commwiki/servlet/hwikibypageid?4606

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

Некоторые люди, столкнувшись с проблемой, думают: «Я знаю, я буду использовать регулярные выражения». Теперь у них две проблемы.

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

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

John Fiala 15.10.2008 20:30

Превосходно. Я принял это как эвристику или практическое правило, если вам не нравится педантичное звучание слова «эвристический».

MrBoJangles 15.10.2008 20:31

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

simon 15.10.2008 21:22

Да, вы неправильно поняли цитату. Я полагаю, он сказал это во время выступления против Perl (возможно, потому, что в 97-м году было трудно инициировать функцию регулярного выражения в Perl). Он не говорил, что не используйте это.

Keng 15.10.2008 22:50

Как указал Саймон. Самая важная часть в освоении Regex - это когда НЕ использовать регулярное выражение, но со временем это умение придет. А до тех пор используйте регулярное выражение, когда вы делаете находки Word, или в своем любимом текстовом редакторе, или в Excel. Везде, где у вас есть такая возможность, используйте ее, пока не научитесь с ней хорошо справляться.

Кроме того, узнайте об этих концепциях довольно рано.

  • жадный
  • ленивый
  • какая разница между "." и "\ w"
  • "\ b"
  • классы сокращенных символов ("\ s", "\ d" и т. д.)

Пока я работаю, я держу копию Справочник по карману регулярных выражений под рукой - она ​​дает мне необходимую краткую информацию об использовании RegEx примерно на десятке доступных языков.

Судя по всему, это не издается.

Clay Nichols 05.02.2009 22:33

Следующее издание находится в печати по адресу oreilly.com/catalog/9780596514273/index.html.

John Fiala 18.02.2009 06:37

Лучший способ освоить регулярные выражения - это использовать их в повседневной работе. Используйте редактор с поддержкой регулярных выражений. Рекомендую Блокнот ++. Используйте функцию поиска и замены с включенным регулярным выражением.

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

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

Экспрессо - довольно хорошая бесплатная утилита RegEx:

http://www.ultrapico.com/Expresso.htm

И Памятка по регулярным выражениям, который пригодится:

http://www.addedbytes.com/cheat-sheets/regular-expressions-cheat-sheet/

Гордон, это отличные предложения. Хотел бы я проголосовать дважды :-)

Clay Nichols 05.02.2009 23:57

Я узнал о них, изучая Perl и используя его для создания парсера файла конфигурации. Если вы хотите сделать что-то подобное в наши дни, я бы посоветовал Ruby, в котором есть похожий хук для RE. Изучив основы, я обнаружил, что многие инструменты, которые я использовал, имеют отличную поддержку RE, если вы знали, как ее использовать. Это действительно очень мощно.

Я настоятельно рекомендую Карманный справочник регулярных выражений, о котором упоминали другие. Гораздо проще будет оставаться поблизости, чтобы что-то быстро найти, так как вам нужно будет это сделать. Не говоря уже о том, что многие приложения имеют несколько разные способы реализации некоторых его частей (например, нужно ли использовать обратную косую черту в escape-скобках).

Если вы много занимаетесь обработкой текста, рекомендую изучить RE. Вы это оцените.

Убедитесь, что вы понимаете основы. Вы можете получить это из множества источников (в зависимости от вашего выбора вкуса регулярного выражения).

Вы можете поиграть с ними на чем-нибудь вроде это.

Вы никогда не сможете освоить регулярные выражения. Когда вы думаете, что это так, вы понимаете, что вас овладели регулярными выражениями.

Не говоря уже о том, что Perl RegEx продолжает получать новые полезные функции.

Brad Gilbert 16.10.2008 07:32

В России-матушке регулярные выражения овладевают тобой!

MrBoJangles 21.10.2008 03:04

Исправьте ошибки в книге Джеффа Фридла, прежде чем он это сделает. Пока вы этого не сделаете, вы не освоите регулярные выражения.

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

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

http://www.gskinner.com/RegExr/

это то, что я нашел после просмотра некоторых других сайтов

Другие вопросы по теме