Вебмастеру:
Добавьте разнообразия на страницы Вашего сайта при помощи
легко настраиваемого под Ваш дизайн новостного информера
 
лента новостей

 

идет обновление информации.

 

 
ТОП месяца

 

идет обновление информации.


 
поиск

 


 

:: расширенный поиск ::

 

 
меню 
 
интересное в сети

 

 

 

 

 

 

 
наука и техника
10/04/2016 17:00

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

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

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

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


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


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


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


1. Годы



\b\d{4}\b

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



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

5. Нажать Command+N или выбрать нужный документ;
6. Нажать Command+V и радоваться результату.

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


2. Годы с 1900 по 2099



\b(19|20)\d{2}\b

3. Ссылки



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

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



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

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



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

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



\b\d{6}\b

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



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

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



(.*?)

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



title=["']?((?:.(?!["']?\s+(?:\S+)=|[>"']))+.)["']?

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



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

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



[MDCLXVI]+

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



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

13. Время



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

14. Даты



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


(?:(?: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})

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



С разделителем запятой:


[-+]?[0-9]*\,?[0-9]+

С разделителем точкой:


[-+]?[0-9]*\.?[0-9]+

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


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



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

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



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



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


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


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

Хочешь получать от нас новости Apple?%3Cspan_href=%22.%22+data-yes%3D%221%22%3E%D0%94%D0%B0%3C%2Fspan%3E%C2%A0%7C%C2%A0%3Cspan+href%3D%22.%22+data-no%3D%221">Нет

В закладки | Мои закладки

 

Оригинал (на 10/04/2016): newsone.ws

 

В случае обнаружения неточностей или ошибок
просим Вас сообщить об этом по адресу

 

 

 

 

 

Viber теперь шифрует сообщения и предлагает «Скрытые чаты»

Viber теперь шифрует сообщения и предлагает «Скрытые чаты»

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

 

Названы сроки дебюта Lada Vesta в кузове хэтчбек

Названы сроки дебюта Lada Vesta в кузове хэтчбек

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

 

Продажи iPhone SE превзошли самые смелые ожидания

Продажи iPhone SE превзошли самые смелые ожидания

Большой iPhone в корпусе маленького. Или так: самый современный iPhone в полюбившемся дизайне iPhone 5/5s. Как бы то ни было, ср...

 

Как заблокировать любой сайт на iPhone или iPad

Как заблокировать любой сайт на iPhone или iPad

Включаем «режим цензуры» на iOS. Иногда бывает просто необходимо ограничить доступ к определенным ресурсам на конкретном устрой...

 

Apple против Samsung по квартальной прибыли: кто победил?

Apple против Samsung по квартальной прибыли: кто победил?

Даже понятие «провал» может быть относительным. Если сравнивать квартальный отчет компании из Купертино с отчетами конкурентов,...

 

Реально ли заработать на трейдинге. У кого получилось

Реально ли заработать на трейдинге. У кого получилось

Не риторический вопрос. Если лень читать, ответ здесь. Когда мы покупаем новый шампунь в надежде на то, что он поможет избавить...

 

 

 

 

:: все новости из этой категории на 10/04/2016 ::

 

 

последняя новость  
 

идет обновление информации.

архив
 
 
2006 |  2007 |  2008 |  2009
2010 |  2011 |  2012 |  2013
2014 |  201520162017
2018 |  2019 |  2020 |  2021
2022 |  2023 |  2024 | 

Апрель, 2016
Пн Вт Ср Чт Пт Сб Вск
    123
45678910
11121314151617
18192021222324
252627282930 

 

опрос  
 

 

Для Вас фаст-фуд - это:

 

Удобный способ быстро перекусить

 

Дешевая еда на каждый день

 

Отрава для человеческого желудка

 

Понятия не имею, что это такое

 

 

 

:: результаты опроса ::