Главная

Популярная публикация

Научная публикация

Случайная публикация

Обратная связь

ТОР 5 статей:

Методические подходы к анализу финансового состояния предприятия

Проблема периодизации русской литературы ХХ века. Краткая характеристика второй половины ХХ века

Ценовые и неценовые факторы

Характеристика шлифовальных кругов и ее маркировка

Служебные части речи. Предлог. Союз. Частицы

КАТЕГОРИИ:






Использование групп символов




В регулярных выражениях можно использовать и группы символов:

PS C:\> Get-Process | where {$_.name -match "sy[ns]"}

 

Handles NPM(K) PM(K) WS(K) VM(M) CPU(s) Id ProcessName

------ ----- ----- ----- ------ -- -----------

165 11 2524 8140 79 0,30 5228 mobsync

114 10 3436 3028 83 50,14 3404 SynTPEnh

149 11 2356 492 93 0,06 1592 SynTPStart

810 0 116 380 6 4 System

 

И диапазоны в этих группах:

PS C:\> "яблоко","апельсин","груша","абрикос" -match "а[а-п]"

апельсин

абрикос

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

Перечисления символов можно комбинировать, например группа [агдэ-я] будет означать “А или Г или Д или любой символ от Э до Я включительно”. Но гораздо интереснее использовать диапазоны для определения целых классов символов. Например [а-я] будет означать любую букву русского алфавита, а [a-z] английского. Аналогично можно поступать с цифрами – следующая команда выведет все процессы, в именах которых встречаются цифры:

PS C:\> Get-Process | where {$_.name -match "[0-9]"}

 

Handles NPM(K) PM(K) WS(K) VM(M) CPU(s) Id ProcessName

------- ------ ----- ----- ----- ------ -- -----------

57 2 404 1620 16 0,05 984 ati2evxx

110 4 2540 4868 36 0,20 852 hpgs2wnd

105 3 940 3292 36 0,19 2424 hpgs2wnf

91 3 2116 3252 34 0,06 236 rundll32

Так как эта группа используется достаточно часто, для неё была выделена специальная последовательность – \d (от слова digit). По смыслу она полностью идентична [0-9], но короче.

 

PS C:\> Get-Process | where {$_.name -match "\d"}

 

Handles NPM(K) PM(K) WS(K) VM(M) CPU(s) Id ProcessName

--- ------ ----- ----- ----- ------ -- -----------

93 10 1788 2336 70 1,25 548 FlashUtil10c

158 12 6500 1024 96 0,14 3336 smax4pnp

30 6 764 160 41 0,02 3920 TabTip32

Так же последовательность была выделена для группы “любые буквы любого алфавита, любые цифры, или символ подчеркивания” эта группа обозначается как \w (от word) она примерно эквивалентна конструкции [a-zа-я_0-9] (в \w еще входят символы других алфавитов которые используются для написания слов).

Другая популярная группа: \s – “пробел, или другой пробельный символ” (например символ табуляции). Сокращение от слова space. В большинстве случаев вы можете обозначать пробел просто как пробел, но эта конструкция добавляет читабельности регулярному выражению.

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

Все вышеперечисленные конструкции можно использовать как отдельно, так и в составе групп, например [\s\d] будет соответствовать любой цифре или пробелу. Если вы хотите указать внутри группы символ - (тире/минус) то надо либо экранировать его символом \ (обратный слеш), либо поставить его в начале группы, чтобы он не был случайно истолкован как диапазон:

PS C:\> "?????","Word","123","-" -match "[-\d]"

-

 






Не нашли, что искали? Воспользуйтесь поиском:

vikidalka.ru - 2015-2024 год. Все права принадлежат их авторам! Нарушение авторских прав | Нарушение персональных данных