Регулярные выражения (regex), которые будут вам полезны. 1-я часть

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

Перед тем как приступать к практике, мы рекомендуем изучить следующие разделы онлайн справки Datacol: Теория и Часто используемые регулярные выражения.

А теперь можно переходить к полезной информации и советам по побору регулярок.

У регулярок есть метасимволы. Вот их перечень:

. ^ $ * + ? { } [ ] \ | ( )

Если в нашем regex присутствуют какие-то из метасимволов, его необходимо «экранировать», то есть поставить перед ним «\». К примеру, для (страница), regex будет: \(страница\)

В регулярных выражениях существуют специальные наборы символов:

    \d — цифра, также можно использовать: [0-9]
    \D — НЕ цифра, также можно использовать: [^0-9]
    \s — символ whitespace, также можно использовать: [ \t\n\r\f\v]
    \S — НЕ whitespace символ, также можно использовать: [^ \t\n\r\f\v]
    \w — буква, цифра, также можно использовать: [a-zA-Z0-9_]
    \W — НЕ буква, цифра, также можно использовать: [^a-zA-Z0-9_]

Чтобы задать информацию о том, сколько раз должен повторится символ, в фигурных скобках необходимо указать количество {1}. Вы также можете указать диапазон {1,10} или {5,} — от 5-и до бесконечности.

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

Например, у Вас есть строка со следующей датой 27.03.2017. Создадим регулярное выражение:

([\d]{2})\.([\d]{2}).([\d]{4})

Давайте его разберем:
[\d]{2} — нам надо найти две цифры
[\d]{4} — нам надо найти четыре цифры

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

Группа в регулярных выражениях

Вы можете использовать группы в заменах. Например, нам необходимо дату 27.03.2017 перевести в следующий формат: месяц-день-год. Наше выражение:

([\d]{2})\.([\d]{2}).([\d]{4})

В заменах группу обозначаем символом «$». Создаем замену со сменой нашего выражения на $2-$1-$3. В итоге получаем:

Группа в заменах Datacol

Регулярное выражение, которое найдет e-mail адрес:

[a-z0-9_\.-]+@[a-z0-9_-]+\.[a-zA-Z]{2,6}

Регулярное выражение, которое найдет заголовок документа (title):

<title>([^<>]*?)</title>

При поиске информации в тегах или между ними рекомендуем писать выражение [^<>]*? вместо .*? . Это поможет ускорить поиск и вы найдете именно тот участок, который вам нужен.

Регулярное выражение, которое найдет метатег description:

<meta name="description" content="([^<>]*?)">

Регулярное выражение, которое найдет метатег keywords:

<meta name=['"]keywords['"] content=['"]([^<>]*?)['"]>

Продолжаем разбирать тему регулярных выражений во 2-й части статьи.

Материал для статьи был предоставлен сайтом bestweb4u.net, на котором можно найти много познавательных материалов по тонкостям настройки Datacol.