Главная Случайная страница


Полезное:

Как сделать разговор полезным и приятным Как сделать объемную звезду своими руками Как сделать то, что делать не хочется? Как сделать погремушку Как сделать так чтобы женщины сами знакомились с вами Как сделать идею коммерческой Как сделать хорошую растяжку ног? Как сделать наш разум здоровым? Как сделать, чтобы люди обманывали меньше Вопрос 4. Как сделать так, чтобы вас уважали и ценили? Как сделать лучше себе и другим людям Как сделать свидание интересным?


Категории:

АрхитектураАстрономияБиологияГеографияГеологияИнформатикаИскусствоИсторияКулинарияКультураМаркетингМатематикаМедицинаМенеджментОхрана трудаПравоПроизводствоПсихологияРелигияСоциологияСпортТехникаФизикаФилософияХимияЭкологияЭкономикаЭлектроника






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





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

 

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]"

-

 

Date: 2015-05-23; view: 808; Нарушение авторских прав; Помощь в написании работы --> СЮДА...



mydocx.ru - 2015-2024 year. (0.007 sec.) Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав - Пожаловаться на публикацию