Как мгновенно извлечь из текста даты, номера телефонов, емейлы и другие данные

Ирина Чернова avatar | 84
FavoriteLoading В закладки
Как мгновенно извлечь из текста даты, номера телефонов, емейлы и другие данные

15 регулярок для Sublime на все случаи жизни.

Пятилетний ребенок разберется, как через поисковое окошко найти в тексте комбинацию цифр «1999» или «1800». А вот как найти все комбинации из четырех цифр идущих подряд? Или все номера телефонов? Или фрагменты текста внутри html-тегов?

Для решения подобных задач (и не только их) несколько десятилетий назад были придуманы регулярные выражения (Regular Expression). Это универсальная система описания текстовых строк, которая применяется в разных приложениях и языках программирования.

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

В во всех примерах мы будем использовать Sublime Text. Скачать его установочный файл можно на официальном сайте приложения. При желании можно использовать другой текстовый редактор (список программ с поддержкой регулярных выражений есть в конце статьи).

1. Годы

regular_expression_year
[code]
\b\d{4}\b
[/code]

Итак, у нас есть окно редактора, в котором есть исходный текст и регулярное выражение. Нам нужно сделать следующее:

  1. 1. Нажать Command+F;
  2. 2. Сделать активной кнопку .* в левом нижнем углу;
  3. 3. Вставить регулярное выражение в поисковое окошко и нажать на кнопку Find All;
  4. 4. Нажать Command+C;
  5. 5. Нажать Command+N или выбрать нужный документ;
  6. 6. Нажать Command+V и радоваться результату.

В остальных 14 примерах надо делать тоже самое.

2. Годы с 1900 по 2099

years_from_1900

[code]
\b(19|20)\d{2}\b
[/code]

3. Ссылки

external_link
[code]
(http|ftp|https)://([\w_-]+(?:(?:\.[\w_-]+)+))([\w.,@?^=%&:/~+#-]*[\w@?^=%&/~+#-])?
[/code]

4. Адреса электронной почты

emails

[code]
\b[A-Z0-9._%+-]+@[A-Z0-9.-]+\.[A-Z]{2,}\b
[/code]

5. Номера телефонов

telephone_number

[code]
((8|\+7)[\- ]?)?(\(?\d{3}\)?[\- ]?)?[\d\- ]{7,10}
[/code]

6. Почтовые индексы

zip_code
[code]
\b\d{6}\b
[/code]

7. IP-адреса (IPv4)

ip_v_4

[code]
(?:[0-9]{1,3}\.){3}[0-9]{1,3}
[/code]

8. Содержимое html-тегов

html_tags
[code]
<h3>(.*?)</h3>
[/code]

9. Значения атрибутов html-тегов

html_tag_attribute
[code]
title=["’]?((?:.(?!["’]?\s+(?:\S+)=|[>"’]))+.)["’]?
[/code]

10. Имя+Фамилия

name_surname

[code]
[А-ЯЁ][а-яё]+ [А-ЯЁ][а-яё]+
[/code]

11. Римские цифры

rim_digits

[code]
[MDCLXVI]+
[/code]

12. Широта/Долгота

lat_long
[code]
-?[0-9]{1,3}(?:\.[0-9]{1,10})?
[/code]

13. Время

hh_mm
[code]
([0-9]|0[0-9]|1[0-9]|2[0-3]):[0-5][0-9]
[/code]

14. Даты

data

В форматах дд/мм/гггг,дд-мм-гггг или дд.мм.гггг.

[code]
(?:(?:31(\/|-|\.)(?:0?[13578]|1[02]))\1|(?:(?:29|30)(\/|-|\.)(?:0?[1,3-9]|1[0-2])\2))(?:(?:1[6-9]|[2-9]\d)?\d{2})$|^(?:29(\/|-|\.)0?2\3(?:(?:(?:1[6-9]|[2-9]\d)?(?:0[48]|[2468][048]|[13579][26])|(?:(?:16|[2468][048]|[3579][26])00))))$|^(?:0?[1-9]|1\d|2[0-8])(\/|-|\.)(?:(?:0?[1-9])|(?:1[0-2]))\4(?:(?:1[6-9]|[2-9]\d)?\d{2})
[/code]

15. Числа с десятичными дробями

decimal_numbers

С разделителем запятой:
[code]
[-+]?[0-9]*\,?[0-9]+
[/code]
С разделителем точкой:
[code]
[-+]?[0-9]*\.?[0-9]+
[/code]

Альтернативы

Естественно, на Sublime Text свет клином не сошелся и есть и другие текстовые редакторы с поддержкой регулярных выражений. Скорее всего, как минимум, с несколькими из них вы в определенной степени знакомы:

  • Atom;
  • BBEdit;
  • Brief;
  • Elvis;
  • Emacs;
  • BBEdit;
  • Brief;
  • Coda;
  • Elvis;
  • Emacs;
  • Microsoft Word;
  • NEdit;
  • Notepad++;
  • NoteTab;
  • Nvi;
  • PSPad;
  • SubEthaEdit;
  • TextMate;
  • TSE;
  • UltraEdit;
  • Vile;
  • Vim.

Полезные веб-сервисы

regexp

На regexr.com можно протестировать регулярные выражения и узнать что обозначают их отдельные синтаксические элементы. Также на этом сайте теоретическая информация по теме.

email_extractor

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

Для тех, кто хочет узнать больше

В статье Мой ТОП-9 книг для программистов я упоминала книгу «Регулярные выражения. Сборник рецептов». В ней можно найти много готовых практических примеров, но она не сделает вас «богом регулярок». Для этого понадобится литература посерьезнее.
Авторитетные люди по всему миру рекомендует для глубокого и тонкого понимания этой темы прочитать ставшую классикой книгу Джеффри Фридла «Регулярные выражения».
Но для начала можно пройти онлайн-курс на regexone:
regex_one_online_course

1 Звезд2 Звезды3 Звезды4 Звезды5 Звезд (8 голосов, общий рейтинг: 4.50 из 5)
undefined
iPhones.ru
15 регулярок для Sublime на все случаи жизни. Пятилетний ребенок разберется, как через поисковое окошко найти в тексте комбинацию цифр «1999» или «1800». А вот как найти все комбинации из четырех цифр идущих подряд? Или все номера телефонов? Или фрагменты текста внутри html-тегов? Для решения подобных задач (и не только их) несколько десятилетий назад были...
Прокомментировать

🙈 Комментарии 84

  1. TVP avatar
    TVP10 апреля 2016
    3

    Ш-Шта?!

    Букинxем avatar
    Букинxем10 апреля 2016
    0

    @TVP, шта-шта, иди регулярки учи)

    Ирина Чернова avatar
    Ирина Чернова10 апреля 2016
    0

    @TVP, что конкретно Вас смущает?

    TVP avatar
    TVP10 апреля 2016
    2

    @Ирина Чернова, во первых непонятно как это все относится к теме ресурса, а во вторых как уже ранее заметил “metal_king”, в повседневной жизни этот способ не особо применим…

    Ирина Чернова avatar
    Ирина Чернова10 апреля 2016
    0

    @TVP, 1. Чем лайфхаки по работе с текстом на Mac не соответствуют тематике ресурса? 2. А тема использования регулярок в разработке в статье не обсуждается)

    TVP avatar
    TVP10 апреля 2016
    1

    @Ирина Чернова, я вообще изначально оставил подобный комментарий, что бы сказать, что стоит подобные темы как то проще “разжовывать” что-ли… Я даже сам не сразу понял о чем речь…

    Ирина Чернова avatar
    Ирина Чернова10 апреля 2016
    0

    @TVP, так я как раз и постаралась максимально проще. Нужно собрать данные из файлов – выбрал подходящую регулярку, скопировал и используешь)

    TVP avatar
    TVP10 апреля 2016
    1

    @Ирина Чернова, ну деградирую, что поделать)

    Ирина Чернова avatar
    Ирина Чернова10 апреля 2016
    0

    @TVP, так я же вас не упрекаю))) если вам не показалась подача простой, то мне следует задуматься над этим… А как бы Вы видели идеальную подачу такой статьи?

    TVP avatar
    TVP10 апреля 2016
    1

    @Ирина Чернова, кстати, Наталья, а разьясните подалуйста… Что это за рейтинги такие-” свмые активные” и -“самые любимые” как я там оказался, и что за циферки напротив? Модет я через чур ахтивным стал и за мной уже едут?))

    Ирина Чернова avatar
    Ирина Чернова10 апреля 2016
    0

    @TVP, цифра это число комментариев за неделю (пн-воскресенье). А “Наталья” это какое-то турецкое оскорбление?

    TVP avatar
    TVP10 апреля 2016
    1

    @Ирина Чернова, это Хинди) простите, не знаю почему вас Натальей назвал)

    Dexfir avatar
    Dexfir10 апреля 2016
    0

    @TVP, Серега, че с тобой?))))))))

    dennis1 avatar
    dennis110 апреля 2016
    0

    @Ирина Чернова, а хотелось бы увидеть еще рейтинг самых забаненых, так сказать самые сливки, а не только лишь отсталых)

    Артур Малосиев avatar
    Артур Малосиев10 апреля 2016
    0

    @TVP, поддерживаю;)

    lonz avatar
    lonz10 апреля 2016
    1

    @Ирина Чернова, зашёл почитать про айфоны

    Ирина Чернова avatar
    Ирина Чернова10 апреля 2016
    0

    @lonz, ну так статья для пользователей OS X и iOS. Поставьте на свой iPhone TextWrape и используйте для поиска текста регулярки в нем)

    lonz avatar
    lonz10 апреля 2016
    0

    @Ирина Чернова, не представляю, если бы я зашёл, например, на Engadget, даже и не в раздел мобайл, и почитал бы там про “регулярки”. Но понятно почему так делаете, конечно. Жаль.

    Ирина Чернова avatar
    Ирина Чернова10 апреля 2016
    0

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

  2. metal_king avatar
    metal_king10 апреля 2016
    0

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

    Ирина Чернова avatar
    Ирина Чернова10 апреля 2016
    0

    @metal_king, тема ~реальной жизни~ в статье не затрагивается))) И не надо заводить разговор ~про это~:-) А то сейчас начнется аля ~хабросрач~, как это часто бывает)
    Но за высказанное мнение большое спасибо)

  3. Fillosoff avatar
    Fillosoff10 апреля 2016
    0

    Спасибо! очень полезно. а не подскажете, TextWrangler поддерживает? я только им пользуюсь.

    Ирина Чернова avatar
    Ирина Чернова10 апреля 2016
    0

    @Fillosoff, да, вроде)

    Артур Малосиев avatar
    Артур Малосиев10 апреля 2016
    0

    @Fillosoff, я тоже им. Не поддерживает ;(

    Ирина Чернова avatar
    Ирина Чернова10 апреля 2016
    0

    @Артур Малосиев, @Fillosoff, при поиске ставьте галочку на параметр Grep и начнет поддерживать)

    Fillosoff avatar
    Fillosoff10 апреля 2016
    0

    @Ирина Чернова, решил проверить на номерах телефонов. поставил галочку на Grep, задал поиск по шаблону – который выше. так мне по очереди всё, что было с цифрами находить стал. все суммы – стоимости услуг перебрал в файле. и только в самом конце, наконец-то добрался до телефонов.) может, что не так делаю. но похоже, @Артур Малосиев прав – не поддерживает. жаль..

    Ирина Чернова avatar
    Ирина Чернова10 апреля 2016
    0

    @Fillosoff, а приведите пожалуйста пару примеров как у Вас записаны номера телефонов)

    Fillosoff avatar
    Fillosoff11 апреля 2016
    0

    @Ирина Чернова, я просто взял прайс. там телефонов всего два было – оба в конце, в обычном формате: +7 (***) ***-**-**.

    Ирина Чернова avatar
    Ирина Чернова11 апреля 2016
    0

    @Fillosoff, у меня в TextWrangel получилось с такой регуляркой

    7(.*)(\d{3})-(\d{2})-(\d{2})

    У regexp для TextWrangle есть синтаксические особенности (гуглятся по запросу textwrangle grep syntax).

    Fillosoff avatar
    Fillosoff11 апреля 2016
    0

    @Ирина Чернова, спасибо! попробую!)

  4. ozyab avatar
    ozyab10 апреля 2016
    0

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

  5. Miku Hatsune avatar
    Miku Hatsune10 апреля 2016
    0

    >Ссылки
    >(http|ftp|https)://([\w_-]+(?:(?:\.[\w_-]+)+))([\w.,@?^=%&:/~+#-]*[\w@?^=%&/~+#-])?

    Зачем такие извороты по вытаскиванию ссылок из тега href???

    Ирина Чернова avatar
    Ирина Чернова10 апреля 2016
    0

    @Miku Hatsune, эта регулярка не предусматривает наличие аттрибута href.

    Miku Hatsune avatar
    Miku Hatsune11 апреля 2016
    0

    @Ирина Чернова, на скриншоте все ссылки в href
    Даже если нет почему бы не сделать http|ftp|https :// и до пробела? Что вообще ищет выражение из статьи?

    Ирина Чернова avatar
    Ирина Чернова11 апреля 2016
    1

    @Miku Hatsune, ну я просто поленилась искать другой текст со ссылками(
    До пробела текст искать нельзя (в смысле можно конечно же, но не всегда), так как:
    поиск может происходить внутри csv-файлов где разделителями могут быть ; | табуляция и т.д. и пробелов не быть вообще (только переносы строк).
    Поиск ссылок можно происходить в JSON-файлах где ссылка тоже не будет заканчиваться пробелом, а будет заканчиваться кавычкой и т.д.
    Регулярка из статьи ищет непрерывную последовательность символов, допустимых в гипперссылках, идущую после http или https или ftp.

  6. twelve avatar
    twelve10 апреля 2016
    2

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

    Артур Малосиев avatar
    Артур Малосиев10 апреля 2016
    0

    @twelve, жжешь ;)))

  7. Maxim Velgach avatar
    Maxim Velgach10 апреля 2016
    0

    “0-9” бы везде на \d заменить для упрощения.

    Ирина Чернова avatar
    Ирина Чернова10 апреля 2016
    0

    @Maxim Velgach, спасибо! Но: работает и ладно)

  8. Seva2006 avatar
    Seva200610 апреля 2016
    0

    Вот бы мне обычному строителю понять хотя бы 5% того что тут написано

    dennis1 avatar
    dennis110 апреля 2016
    0

    @Seva2006, не парься они и 1% не поймут в твоей области) каждому свое)

    Seva2006 avatar
    Seva200610 апреля 2016
    0

    @dennis1, к великому сожалению это так, по опыту 95% людей с которыми сталкивался были убеждены что понимают в строительстве и что вообще ничего сложного нет :))))

    Fillosoff avatar
    Fillosoff10 апреля 2016
    0

    @Seva2006, опыт иногда преувеличивает.) скорее, как и везде – в действии закон Парето: 80 на 20.))

    evilsheep avatar
    evilsheep11 апреля 2016
    0

    @Fillosoff, если Вы верите, что везде или даже в большинстве кейсов действует это соотношение “80:20”, то Вы – идиот.

    Seva2006 avatar
    Seva200611 апреля 2016
    0

    @Fillosoff, вполне может быть и 80, разве этого мало? я сказал образно, потому что практически все кто сталкивается со строительством, не будучи строителем убеждены что все знают и понимают…

    Fillosoff avatar
    Fillosoff11 апреля 2016
    0

    @Seva2006, конечно же не мало! и это не только в строительстве так, а в любой области. и все это описывается законом Парето. поэтому, я и написал об этом.)

    Ирина Чернова avatar
    Ирина Чернова10 апреля 2016
    0

    @Seva2006, так понимать не надо) Надо просто использовать по мере необходимости)

    Seva2006 avatar
    Seva200610 апреля 2016
    0

    @Ирина Чернова, Что бы использовать надо понимать! А для меня это темный лес

    Ирина Чернова avatar
    Ирина Чернова10 апреля 2016
    0

    @Seva2006, а зачем понимать, если тысячи готовых регулярок уже написаны? Просто берите и пользуйтесь, когда надо)

    Seva2006 avatar
    Seva200610 апреля 2016
    0

    @Ирина Чернова, нее спасибо, даже не знаю что такое регулярка, пусть этим занимаются специалисты в этой области, сапожник сделает хорошие туфли, а я лучше построю хорошее здание, не надо лезть туда где ты не разбираешься, как показывает моя практика дилетанты или псевдоспециалисты могут запороть даже самые простейшие, но очень важные моменты которые потом специалистам переделывать сложнее чем сделать с самого начала

    Ирина Чернова avatar
    Ирина Чернова10 апреля 2016
    0

    @Seva2006, Ваши рассуждения предельно правильны и я не смею в Вами спорить) Но статья просто о готовых рецептах продвинутого поиска в тексте. Чтобы вытащить с веб-страницы номера телефонов или поля таблицы не нужно звать специалистов, так как это секундное дело)

    Seva2006 avatar
    Seva200610 апреля 2016
    0

    @Ирина Чернова, может быть и так, но опять таки так как я человек старой формации и хоть и пользуюсь айфоном, маком и прочими благами современной цивилизации, вникать в это для меня очень сложно (хотя вполне может быть мне это только кажется), поэтому если я сталкиваюсь с какой то проблемой технического характера у меня есть личный помощник (выпускник бауманки) и трое сыновей которые во всем этом выросли… для меня даже договор читать и вносить правки на мониторе что то катастрофически сложное, мне проще распечатать и красной ручкой править, единственное без чего я не могу во всех этих компьютеризациях это автокад, год меня ему учили и теперь в нем как в своей бумажной записной книжке (в айфоне у меня всего 6 контактов), хотя и так все нужные мне номера и адреса электронных почтовых ящиков помню по памяти, а когда не помню то при наборе первых символов они сами выскакивают

    Ирина Чернова avatar
    Ирина Чернова10 апреля 2016
    0

    @Seva2006, от всей души Вам завидую:-)

    Maxim Velgach avatar
    Maxim Velgach10 апреля 2016
    0

    @Seva2006, это всем сложно понять и на это понимание часто уходит не один месяц. Так что действительно проще брать и пользоваться тем, что есть.

    Seva2006 avatar
    Seva200610 апреля 2016
    0

    @Maxim Velgach, ну вот я и пользуюсь поиском, как указано в самом начале :)

  9. Wespe avatar
    Wespe10 апреля 2016
    1

    Сокровище настоящее, а не статья.
    Ирине аплодисменты!

    dennis1 avatar
    dennis110 апреля 2016
    0

    @Wespe, просто сказка, я сам аж всплакнул

  10. iphonesartclehater avatar
    iphonesartclehater10 апреля 2016
    1

    Ваш ресурс превратился в дерьмо, захожу сюда по привычке, по старой памяти …

    Реклама хлама и фитодерьмо

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

    А то каждый раз захожу и искренне растраиваюсь

    Ирина Чернова avatar
    Ирина Чернова10 апреля 2016
    0

    @iphonesartclehater, а чем Вас расстроили лайфхаки по работе с текстом на Mac?

    iphonesartclehater avatar
    iphonesartclehater10 апреля 2016
    3

    @Ирина Чернова, Я потребитель, простой потребитель контента и мне раньше нравился ресурс. Я не думаю, что я было или дурак (2 высших, 2 профильных)

    Вы умная девушка, судя по статье, работая с цифрами обладаете аналитическим складом ума. Мое расстройство связано с тем, что раньше я сюда приходил и отдыхал, сейчас я прихожу и чувствую себя чужим. Ощущение, что ресурс сузился для очень узкого круга читателей, веги с челками в клетку и определенным обозам жизни.

    Список заголовок статей с одной страницы за август 2012

    iPhone как подслушивающее устройство
    Новые фотографии передней панели iPhone 5
    App Store в iOS 6 обзавёлся новым интерфейсом поиска
    Foxconn инвестирует в Sharp ради Apple
    Новые фотографии «iPhone 5» в сравнении с iPhone 3GS и 4
    О производителях дисплеев для «iPhone 5» и «iPad mini»
    Неизвестные ранее фотографии Стива Джобса
    Обзор скринпротекторов Spigen SGP Steinheil Series для iPhone 5. Хитрый эксперимент
    App Store + HD Собеседник HD. Русская ассистентка
    Конкурс по Pictorial 2 (собрали)
    Каталог подарков Apple 1983 года
    App Store + HD Говорящие часы. Слушая время

    2016:

    Много текста о ненятном, для супер узкого круго людей тусующихся на хабре
    Польза от вегетарианства
    Реклама пылесоса
    Рюкзак
    Реклама полатки с наушниками
    Качалка + фоточки

    Maxim Velgach avatar
    Maxim Velgach10 апреля 2016
    1

    @iphonesartclehater, надо же, я думал, что этот ресурс предназначен не для “простых потребителей контента”, а для технически грамотных людей, которые купили айфон не потому что “яблоко – это круто” или для имитации высокого социального статуса. Это технический ресурс, описывающий особенности продукции Apple, и эта статья полезна тем, кому нужна особая обработка текста на Mac. Хотя я регекспами в текстовых редакторах в основном пользуюсь для удаления подряд идущих пробелов (\s+) и тому подобного.
    А с рекламой – я с Вами полностью согласен, она порядком надоела, но, к сожалению, она сейчас везде.

    dennis1 avatar
    dennis110 апреля 2016
    1

    @iphonesartclehater, у Ирины интересные и полезные статьи, согласен с Вами, что ресурс с подачи главного редактора) превратился в гавно, но главное что есть хоть кого-то тут почитать! p.s. Вчера в комментах, Бардаша просил помочь с выбором модели iPhone 6s для России, но это чудо даже внимание не обратило.

    Ирина Чернова avatar
    Ирина Чернова10 апреля 2016
    1

    @iphonesartclehater, большое спасибо за развернутый ответ, буду делать больше легких материалов на тему Apple. Но фишки/инструкций тоже очень нужны. Продвинутый поиск с поддержкой RegExp может пригодиться каждому, кто пользуется текстовыми редакторами (не зря же эта фича даже в Adobe InDesign есть) и полезно иметь общее представление о ее применении.
    Я вот очень старалась подать эту статью, чтобы ничем не напрягать читателя: копируешь, вставляешь, получаешь результат. А вышел такой EPIC FAIL.

    Fillosoff avatar
    Fillosoff10 апреля 2016
    0

    @Ирина Чернова, все нормально, не переживайте.) кому надо – возьмут и будут пользоваться, и будут благодарны. кому не надо – не всегда молча пройдут. как и везде в жизни.)
    Я работаю с клиентами. и каждое утро, приступая к работе, повторяю себе древнюю китайскую мудрость: “Ни сы!” что означает: “Будь безмятежен, словно цветок лотоса у подножия Храма Истины…”))))

    Ирина Чернова avatar
    Ирина Чернова11 апреля 2016
    0

    @Fillosoff, на самом деле регулярки нужны очень и очень многим людям, и мне жаль что некоторые этого не осознают. Пример: недавно моя мама (54-летний ботаник) потратила целый рабочий день на изменение оформления списка литературы (там сотни источников). А с регулярками справилась бы за 15 минут. Но ко всем автоматизациям у нее отношение как в комментарии twelve + от ручной работы больше моральное удоволетворение.

    Fillosoff avatar
    Fillosoff11 апреля 2016
    0

    @Ирина Чернова, можно без конца долго морально удовлетворяться… если время есть.) а когда еще с семьей хочется больше времени проводить, да с друзьями встретиться, да на футбол сходить.. то я предпочитаю быстренькое, технологически усовершенствованное, моральное удовлетвореньеце.))))

    dennis1 avatar
    dennis111 апреля 2016
    0

    @Ирина Чернова, продолжайте делать свое дело! Лично Вы заняли хорошую нишу, несмотря на засилие сплошных рекламщиков на данном ресурсе!

    evilsheep avatar
    evilsheep11 апреля 2016
    2

    @iphonesartclehater, теперь мы опытным путём пришли к тому, что быдло и дурак не исключают возможности 2 высших, спасибо, улыбнули.

  11. goodhoopoe avatar
    goodhoopoe10 апреля 2016
    0

    Ирина, вот вроде хорошие статьи выкладываете, но узконаправленные. гораздо проще было бы вступить с основ регекса, строчек на 10-15, и абсолютно всем было бы намного понятнее что например обозначает вот это выражение: “[А-ЯЁ][а-яё]+ [А-ЯЁ][а-яё]+”, ведь каждому было бы понятнее, что это за плюсик.
    кстати выражение с IP адресами правильнее было бы записать так же, как вы и записали с временем, ибо появляется 75% погрешность.

    Ирина Чернова avatar
    Ирина Чернова10 апреля 2016
    0

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

  12. metalhead avatar
    metalhead10 апреля 2016
    0

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

    было бы очень не прикольно, если бы все авторы писали про новый айфон се

    Ирина Чернова avatar
    Ирина Чернова10 апреля 2016
    0

    @metalhead, :-)

  13. Astraport avatar
    Astraport10 апреля 2016
    0

    Регулярки рулят, но 99% людей никогда не пригодятся.

  14. hairpet avatar
    hairpet11 апреля 2016
    0

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

    Ирина Чернова avatar
    Ирина Чернова11 апреля 2016
    0

    @hairpet, пример когда это бывает надо. Пишите вы курсовую/научную статью. Скопировали туда текстов из разных источников (в одних цифры римские, а в других арабские). Надо сделать так, чтобы везде была традиционная запись. Если глазами искать каждую римскую цифру и переводить ее, то куча усилий будет потрачено в пустоту. А с помощью Regexp их можно все найти в секунду, потом в Excel перевести все сразу в арабские и на VBA скрипт для замены написать (несколько строк). Если текст длинный то времени можно сэкономить порядочно)

  15. evilsheep avatar
    evilsheep11 апреля 2016
    0

    Годно, спасибо.

  16. Tigriki avatar
    Tigriki11 апреля 2016
    0

    емейл?
    Что за ужасы….периферия какая-то что ли статьи пишет.

  17. Vizakenjack avatar
    Vizakenjack12 апреля 2016
    0

    Автор написала статью сама для себя?

    Ирина Чернова avatar
    Ирина Чернова12 апреля 2016
    0

    @Vizakenjack, да и для себя тоже.

    Andrey334 avatar
    Andrey33418 марта 2021
    0

    @Ирина Чернова, есть такой код только для MAC адреса??

  18. Andrey334 avatar
    Andrey33418 марта 2021
    0

    Добрый день, есть такой код только для MAC адреса??

    Ирина Чернова avatar
    Ирина Чернова19 марта 2021
    0

    @Andrey334, ^([0-9A-F]{2}[:-]){5}([0-9A-F]{2})$

    Ирина Чернова avatar
    Ирина Чернова19 марта 2021
    0

    @Andrey334, еще можно воспользоваться онлайн-сервисом для извлечения mac-адресов из текста воспользоваться. https://en.toolpage.org/tool/mac-extractor

    Andrey334 avatar
    Andrey33419 марта 2021
    0

    @Ирина Чернова, Огромное спасибо) Очень помогли)

Вы должны авторизоваться или зарегистрироваться для комментирования.

Нашли орфографическую ошибку в новости?

Выделите ее мышью и нажмите Ctrl+Enter.

Как установить аватар в комментариях?

Ответ вот здесь