Лаборатория машинного обучения создала игру, которая проверяет ваши навыки регулярного выражения.
Мы впервые познакомились с Лабораторией машинного обучения в области автоматического создания регулярных выражений с помощью генетического программирования, когда мы использовали ее RegexGenerator++. Теперь мы вернулись, чтобы узнать, как с ним весело провести время.
Игра состоит из 12 уровней возрастающей сложности, причем каждый уровень содержит отдельный блок текста, который, в свою очередь, содержит части текста, которые должны быть сопоставлены с регулярным выражением, которое должно быть предоставлено пользователем.
Каждая попытка рассчитана по времени и оценивается по шкале «F-мера», которая измеряет, насколько близки были удаления и матчи, при этом 100 очков присуждаются за идеальный результат, 0 — за совершенно неправильный или за сдачу.
Перед началом игры вы заполняете простую анкету, в которой вы должны поставить галочки рядом с конструкциями регулярных выражений, с которыми вы знакомы.
Конструкции сгруппированы по релевантности, поэтому, например, группа классов символов включает такие выражения, как:
\w, соответствует любому символу слова (буквенно-цифровой и подчеркивание). Соответствует только символам с низким уровнем ascii (без акцента или без латинских символов). Эквивалентно [A-Za-z0-9_]
\d, соответствует любому значному символу (0-9). Эквивалентно [0-9]
\s, соответствует любому символу пробела (пробелы, табуляции, разрывы строк)
Группы & Lookarounds имеет, среди прочего:
(ABC), группирует несколько токенов вместе и создает группу захвата для извлечения подстроки или использования обратной ссылки.
\1, соответствует результатам предыдущей группы захвата. Например, \1 соответствует результатам первой группы захвата, а \3 соответствует третьей.
(?:ABC), группирует несколько токенов вместе, не создавая группу захвата.
(нажмите на изображение, чтобы увеличить его)
Это дает ощущение, что следующий тест будет скорректирован в соответствии с уровнем опыта, определенным с помощью анкеты, но упражнения остаются неизменными, независимо от того, ставите ли вы все флажки или ни один из них. Вы также можете переходить от задачи к задаче без ограничений, а также пересдавать их столько, сколько захотите.
Текст, подлежащий сопоставлению, предварительно помечен жирным шрифтом, чтобы он выделялся на фоне остального текста. Что очень полезно, так это немедленная визуальная обратная связь, которую вы получаете при вводе символов, образующих регулярное выражение, потому что вы можете наблюдать, какой текст они сопоставили до сих пор, поэтому постепенно приближаетесь к полному совпадению методом проб и ошибок.
Уровень 1 начинается легко, попросив вас сопоставить цифры, выделенные жирным шрифтом, из следующего блока текста :
Мы должны извлечь эти числа 12, 47, 48 Целые числа также интересны: 189 2036 314 «,» является разделителем, поэтому, пожалуйста, извлеките эти числа 125,789,1450, а также эти 564,90456 Мы хотели бы предложить вам 7890 долларов в месяц, чтобы выполнить эту задачу… мы шутим, что вы узнаете 3 вещи, первая из которых не извлекается, а 2 и 3-это просто цифры. Получайте удовольствие от нашего могучего теста, вы будете поддерживать науку, прогресс, здоровье человечества, и вы потратите впустую 30 или 60 минут своей жизни. вы также можете извлечь экзотические вещи, такие как a456 gb67 и 45678911ghth
Важно отметить, что вы пишете не выражение, которое буквально соответствует 189 2036 или 314, а выражение, которое соответствует шаблону, сформулированному из этого текста;это «любая последовательность цифр», она же \d+
Уровень 2 является более сложным, так как вы должны соответствовать MAC-адресам, таким как 38:f8:b7:90:45:92
На уровне 5 вас просят сопоставить IP-адреса, такие как 74.125.189.23, в то время как на уровне 6 вы сталкиваетесь со ссылками, например:
Сложность возрастает до 12-го уровня, где вы должны соответствовать именам авторов в виде Лавкрафта, Х. П. или Дункана, Р.
Однако обратите внимание, что упражнения не так просты, как кажутся, и требуют много времени, чтобы освоить их все. Решения проблем не предоставляются, поэтому, если вы застряли, вам некому помочь. Или есть?
Конечно, не смотрите дальше собственного генетического генератора регулярных выражений Лаборатории машинного обучения++! Начните с копирования всего блока текста упражнения, затем вставьте его в поле формы генератора, а затем в этом поле выделите текст, который необходимо извлечь.После этого просто позвольте машине найти правильное регулярное выражение для вас, тем самым победив их в их собственной игре!
В конце концов, то, что предлагает эта развлекательная игра, — это испытательный стенд для ваших навыков и попытка обучить себя поиску новых выражений соответствующего текста.
У меня есть предложение для разработчиков игр. Было бы здорово, если бы они могли еще больше геймифицировать его, дополнительно требуя от пользователей входа в систему с именем пользователя и паролем, разделяя их F-меру и время, затраченное на выполнение упражнений, что позволило бы платформе проводить соревнования, таблицы лиги, топ-10 компетенций регулярных выражений.
Для более продвинутой игры убедитесь, что вы проверили, Можете ли вы решить кроссворд с регулярным выражением?