РАЗДЕЛ 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 по адресу http://go.microsoft.com/fwlink/?LinkId=133231. СМ. ТАКЖЕ about_Comparison_Operators about_Operators