Site creation
  • Share:

    Квантификаторы (повторители)

    Можно просто указать необходимое количество символов непосредственно в строке, но это, естественно не выход. Тем более, что очень часто встречаются ситуации, когда точное количество символов неизвестно. Поэтому синтаксис регулярных выражений содержит набор метасимволов, предназначенных именно для решения подобных задач. Каждый из описанных ниже метасимволов определяет количественную характеристику символа, который находится непосредственно перед ним.
    • Фигурные скобки "{}". Определяют количественную характеристику символа. Внутри скобок через запятую перечисляются минимальное и максимальное количество повторений символа. При этом любой из параметров может быть опущен, а, кроме того, можно задать точное количество повторений, указав только одно число. Примеры:
      • {2,4} - символ должен повториться от двух до четырех раз, т. е. 2, 3 или 4.
      • {,5} - символ может отсутствовать (т. к. не задано минимальное количество повторений), но если присутствует, то не должен повторяться более 5 раз, т. е. 0, 1, 2, 3, 4 или 5
      • {3,} - символ должен повторяться минимум 3 раза, но может быть и больше, т. е. 3, 4, 5, 6 и т. д.
      • {4} - символ должен повторяться ровно 4 раза
    • Звездочка "*". Указывает, что символ должен быть повторен 0 или более раз (т. е. символ может отсутствовать или присутствовать в любых количествах). Эквивалентно "{0,}". Пример: выражение "ab*c" найдет строки "ac", "abc", "abbc" и т. д.
    • Плюс "+". Указывает, что символ должен быть повторен 1 или более раз (т. е. символ обязан присутствовать и может присутствовать в любых количествах). Эквивалентно "{1,}". Пример: выражение "ab+c" найдет строки "abc", "abbc", "abbbc" и т. д., но не найдет строку "ac".
    • Знак вопроса "? ". Эквивалентно "{0,1}". Указывает, что символ может как присутствовать один раз, так и отсутствовать. Пример: выражение "ab?c" найдет строки "ac" и "abc", но не найдет строку "abbc".
    Friday, July 3, 2009 12:05 AM.
    9433 views.
    Reply Follow