Регулярные выражения: как отделить пункты списка от дат?
Блог Добряка SEO, дорвеи, сателлиты, СДЛ и т.д. и т.п.
Дата публикации:

Регулярные выражения: как отделить пункты списка от дат?

63099537

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

Вот пример строки, в которой содержатся и пункты списка, и даты: "Сегодня, 20.12.2023, я собираюсь сделать:\n1.Вот это\n2.И это."

Чтобы из этой строки получить только пункты списка (1. и 2.), можно воспользоваться следующим регулярным выражением: \d+.. Это выражение будет искать цифры, за которыми следует точка.

Однако, если использовать только это выражение, оно также найдет и даты в формате дд.мм.гггг (например, 20.12.2023). Чтобы исключить даты из поиска, можно добавить условие, что после точки не должно быть двух цифр подряд. Для этого можно использовать отрицательный просмотр назад (negative lookbehind).

Итак, окончательное регулярное выражение будет выглядеть так: (?<!\d\d.)\d+.. Это выражение будет находить только пункты списка, исключая даты.

Таким образом, при обработке строки "Сегодня, 20.12.2023, я собираюсь сделать:\n1.Вот это\n2.И это." с использованием данного регулярного выражения, мы получим только пункты списка: 1. и 2.