<Попередній | зміст | Наступна>
{ } - Зіставте елемент певну кількість разів
Команда { та } метасимволи використовуються для вираження мінімальної та максимальної кількості необхідних збігів. Їх можна вказати чотирма можливими способами:
Таблиця 19-3: Визначення кількості збігів
Значення специфікатора
Значення специфікатора
{n} Установіть відповідність з попереднім елементом, якщо він зустрічається точно n раз.
![]()
{n,m} Установіть відповідність з попереднім елементом, якщо він принаймні зустрічається n разів, але не більше ніж m раз.
![]()
{n,} Установіть відповідність з попереднім елементом, якщо він зустрічається n або більше разів.
![]()
{,m} Установіть відповідність з попереднім елементом, якщо він зустрічається не більше ніж m раз.
![]()
Повертаючись до нашого попереднього прикладу з номерами телефонів, ми можемо використовувати цей метод визначення повторів, щоб спростити наш початковий регулярний вираз із:
^\(?[0-9][0-9][0-9]\)? [0-9][0-9][0-9]-[0-9][0-9][0-9][0-9]$
щоб:
^\(?[0-9]{3}\)? [0-9]{3}-[0-9]{4}$
Давайте спробуємо:
[me@linuxbox ~]$ відлуння "(555) 123-4567" | grep -E '^\(?[0-9]{3}\)? [0- 9]{3}-[0-9]{4}$'
(555) 123-4567
[me@linuxbox ~]$ відлуння "555 123-4567" | grep -E '^\(?[0-9]{3}\)? [0-9]
{3}-[0-9]{4}$'
555 123-4567
[me@linuxbox ~]$ відлуння "5555 123-4567" | grep -E '^\(?[0-9]{3}\)? [0-9
]{3}-[0-9]{4}$'
[me@linuxbox ~]$
[me@linuxbox ~]$ відлуння "(555) 123-4567" | grep -E '^\(?[0-9]{3}\)? [0- 9]{3}-[0-9]{4}$'
(555) 123-4567
[me@linuxbox ~]$ відлуння "555 123-4567" | grep -E '^\(?[0-9]{3}\)? [0-9]
{3}-[0-9]{4}$'
555 123-4567
[me@linuxbox ~]$ відлуння "5555 123-4567" | grep -E '^\(?[0-9]{3}\)? [0-9
]{3}-[0-9]{4}$'
[me@linuxbox ~]$
Як бачимо, наш переглянутий вираз може успішно перевіряти числа як з дужками, так і без них, одночасно відхиляючи ті числа, які неправильно відформатовані.
документація