about_Regular_Expressions
Назначение: Windows PowerShell 2.0
РАЗДЕЛ
about_Regular_Expressions
КРАТКОЕ ОПИСАНИЕ
Описание регулярных выражений в Windows PowerShell.
ПОЛНОЕ ОПИСАНИЕ
Windows PowerShell поддерживает следующие знаки регулярных выражений.
Формат Логика Пример
---------- -------------------------------- -----------------------
значение Точное соответствие со знаками "книга" -match "ни"
в любой части исходного значения.
. Любой отдельный знак. "копия" -match "к...я"
[значение] Хотя бы один из знаков "жук" -match "ж[аоу]к"
в квадратных скобках.
[диапазон] Хотя бы один из знаков в указанном "нос" -match "[к-н]ос"
диапазоне. С помощью дефиса (-)
можно задать смежный знак.
[^] Любые знаки, кроме указанных "бык" -match "[^грт]ык"
в квадратных скобках.
^ Знаки в начале строки. "книга" -match "^кн"
$ Знаки в конце строки. "книга" -match "га$"
* Любые совпадения с указанным "тонна" -match "н*"
символом.
? Одно совпадение с указанным "тонна" -match "н?"
символом.
\ Знак, указанный как escape-символ. "Try$" -match "Try\$"
Оболочка Windows PowerShell поддерживает классы символов, доступные
в регулярных выражениях Microsoft .NET Framework.
Формат Логика Пример
-------- ------------------------------- -----------------------
\p{имя} Любой знак в именованном "abcd defg" -match "\p{Ll}+"
классе символов {имя}.
Поддерживаемые имена: группы
символов Юникода и блочные
диапазоны, такие как "Ll", "Nd",
"Z", "IsGreek" и "IsBoxDrawing".
\P{имя} Любой текст, не входящий в 1234 -match "\P{Ll}+"
группы или блочные диапазоны,
заданные классом {имя}.
\w Любой знак, который может "abcd defg" -match "\w+"
входить в слово. Эквивалентно (выбирается abcd)
символьным категориям Юникода
[\p{Ll}\p{Lu}\p{Lt}\p{Lo}\
p{Nd}\p{Pc}]. Если задано
совместимое с ECMAScript
поведение при помощи параметра
ECMAScript, \w эквивалентно
[a-zA-Z_0-9].
\W Любой знак, который не может "abcd defg" -match "\W+"
входить в слово. Эквивалентно (выбирается пробел)
категориям Юникода [^\p{Ll}\p{Lu}\
p{Lt}\p{Lo}\p{Nd}\p{Pc}].
\s Выбираются любые символы пробела. "abcd defg" -match "\s+"
Соответствует символьным
категориям Юникода
[\f\n\r\t\v\x85\p{Z}].
\S Выбираются любые символы, "abcd defg" -match "\S+"
кроме пробелов. Соответствует
символьным категориям Юникода
[^\f\n\r\t\v\x85\p{Z}].
\d Любая десятичная цифра. 12345 -match "\d+"
Соответствует классу \p{Nd} при
использовании Юникода и [0-9]
в противном случае.
\D Любой знак, кроме десятичных "abcd" -match "\D+"
цифр. Соответствует
классу \P{Nd} при использовании
Юникода и [^0-9] в противном
случае.
Windows PowerShell поддерживает кванторы, доступные в регулярных
выражениях .NET Framework. Ниже приведено несколько примеров
кванторов.
Формат Логика Пример
-------- ------------------------------- -----------------------
* Указывает ноль или более "abc" -match "\w*"
совпадений, например \w*
или (abc)*. Эквивалентно {0,}.
+ Повторяющиеся экземпляры знаков, "xyxyxy" -match "xy+"
указанных перед этим символом.
? Указывает ни одного или одно "abc" -match "\w?"
совпадение, например \w?. или
(abc)?. Эквивалентно {0,1}.
{n} Указывает ровно n совпадений, "abc" -match "\w{2}"
например (пицца){2}.
{n,} Указывает не менее n совпадений, "abc" -match "\w{2,}"
например (abc){2,}.
{n,m} Указывает не менее n и не "abc" -match "\w{2,3}"
более m совпадений.
Все сравнения в примерах из приведенной выше таблицы дают
положительный результат.
Обратите внимание, что для регулярных выражений используется
escape-символ обратная косая черта (\), отличный от используемого
в Windows PowerShell. В Windows PowerShell в качестве escape-символа
используется обратный апостроф (`) (код ASCII 96).
Дополнительные сведения см. в разделе "Элементы языка регулярных
выражений" в библиотеке MSDN по адресу
https://go.microsoft.com/fwlink/?LinkId=133231.
СМ. ТАКЖЕ
about_Comparison_Operators
about_Operators