Найти в Дзене
CODEARMY

Квантификаторы в регулярных выражениях

На предыдущем уроке мы познакомились с диапазонами, экранированием в регулярных выражениях. Теперь пришло время разобраться с кванторами. Кванторы ставятся после диапазонов или других последовательностей что бы уточнить, как именно им следует работать. Первый квантор плюс «+» мы рассмотрели на предыдущем занятии. На первый взгляд с квантором они очень похожи с квантором звёздочка. С первым выбираются несколько слов и со вторым выбираются эти же слова. Но разница между ними есть и большая. Плюс означает, что в этом месте должен быть хотя бы один символ, например, из диапазона, звёздочка означает что может не быть ни одного символа. Ещё можно использовать фигурные скобки с указанием точного размера диапазона. Например, нам нужно выбрать только 4 первых буквы, в этом случае поможет [а-яё]{4}? А что, если мы не знаем точно, сколько символов нам нужно, но знаем что их количество может находиться в каком-то диапазоне. Например, в числе месяца в календаре или 1 или 2 цифры. Тогда нам пригодит

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

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

Первый квантор плюс «+» мы рассмотрели на предыдущем занятии. На первый взгляд с квантором они очень похожи с квантором звёздочка. С первым выбираются несколько слов и со вторым выбираются эти же слова. Но разница между ними есть и большая. Плюс означает, что в этом месте должен быть хотя бы один символ, например, из диапазона, звёздочка означает что может не быть ни одного символа.

Ещё можно использовать фигурные скобки с указанием точного размера диапазона. Например, нам нужно выбрать только 4 первых буквы, в этом случае поможет [а-яё]{4}? А что, если мы не знаем точно, сколько символов нам нужно, но знаем что их количество может находиться в каком-то диапазоне. Например, в числе месяца в календаре или 1 или 2 цифры. Тогда нам пригодится регулярное выражение [0-9]{1,2} что означает «от 1 до 2 знаков».

Давайте рассмотрим пример. У нас есть список фамилий и инициалов. Модификаторы регулярных выражений, в частности регистра мы ещё не прошли, поэтому все фамилии и инициалы для простоты будут строчными буквами.

Иванов И. И.

Иванов И.И.

Иванов ИИ

Агент Смит

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

О том, как правильно выбрать ФИО в такой ситуации смотрите в видео.