Онлайн-рабочие станции OnWorks Linux и Windows

Логотип

Бесплатный хостинг в Интернете для рабочих станций

<Предыдущая | Содержание: | Следующая>

* - Соответствие элементу ноль или более раз

Как и ? метасимвол, * используется для обозначения необязательного элемента; однако, в отличие от ?, элемент может встречаться сколько угодно раз, а не один раз. Допустим, мы хотели узнать, является ли строка предложением; то есть он начинается с прописной буквы, затем содержит любое количество прописных и строчных букв и пробелов и заканчивается точкой. Чтобы соответствовать этому (очень грубому) определению предложения, мы могли бы использовать такое регулярное выражение:

[[: верхний:]] [[: верхний:] [: нижний:]] * \.

Выражение состоит из трех элементов: выражение в скобках, содержащее [: верхний:] класс символов, выражение в скобках, содержащее как [: верхний:] и [:ниже:] классы символов и пробел, а точка экранирована обратной косой чертой. Второй элемент заканчивается * метасимвол, так что после ведущей прописной буквы в нашем предложении любое количество прописных и строчных букв и пробелов может следовать за ним и при этом совпадать:



[я @ linuxbox ~] $ echo "Это работает." | grep -E '[[: upper:]] [[: upper:] [

:ниже:] ]*\.'

Это работает.

[я @ linuxbox ~] $ echo "Это работает". | grep -E '[[: upper:]] [[: upper:] [

:ниже:] ]*\.'

Это работает.

[я @ linuxbox ~] $ эхо «это не так» | grep -E '[[: upper:]] [[: upper:

][:ниже:] ]*\.'

[я @ linuxbox ~] $

[я @ linuxbox ~] $ echo "Это работает." | grep -E '[[: upper:]] [[: upper:] [

:ниже:] ]*\.'

Это работает.

[я @ linuxbox ~] $ echo "Это работает". | grep -E '[[: upper:]] [[: upper:] [

:ниже:] ]*\.'

Это работает.

[я @ linuxbox ~] $ эхо «это не так» | grep -E '[[: upper:]] [[: upper:

][:ниже:] ]*\.'

[я @ linuxbox ~] $


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


Лучшие облачные вычисления для ОС в OnWorks: