Как новичку разобраться в регулярных выражениях

В Windows 10 возможность просмотра всех установленных приложений с помощью PowerShell может пригодиться во многих ситуациях. Однако, возможно, лучший сценарий использования — это когда вы пытаетесь удалить приложение Microsoft Store, которое не можете удалить из настроек, и хотите узнать его внутреннее имя, чтобы принудительно удалить его с помощью PowerShell.

Создание регулярного выражения

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

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

    var re = /ab+c/;

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

  • Вызывая функцию конструктор объекта RegExp, например:

    var re = new RegExp(«ab+c»);

    Использование конструктора влечёт за собой компиляцию регулярного выражения во время исполнения скрипта. Используйте данный способ, если знаете, что выражение будет изменяться или не знаете шаблон заранее. Например вы получаете его из стороннего источника, при пользовательском вводе.

Просмотр всех установленных приложений с помощью PowerShell

Чтобы просмотреть список всех установленных приложений с помощью PowerShell, выполните следующие действия:

  1. Откройте Пуск в Windows 10.
  2. Найдите PowerShell, щелкните правой кнопкой мыши верхний результат и выберите параметр Запуск от имени администратора.
  3. Введите следующую команду, чтобы просмотреть список установленных приложений, и нажмите Enter:

    Get-AppxPackage –AllUsers | Select Name, PackageFullName

  4. (Необязательно) Введите следующую команду, чтобы просмотреть все приложения с подробностями, и нажмите Enter:

    Get-AppxPackage –AllUsers

Просмотр всех установленных приложений с помощью PowerShell

Когда вы выполните эти шаги, вы увидите список со всеми приложениями Microsoft Store, установленными в Windows 10.

Синтаксис регулярных выражений

Большинство символов в регулярных выражениях представляют сами себя, за исключением группы специальных символов «[ ] \ / ^ $ . | ? * + ( ) { }». Если эти символы нужно представить в качестве символов текста, их следует экранировать обратной косой чертой «\».

Если эти спецсимволы встречаются без обратной косой черты, значит у них особенные значения в регулярных выражениях:

  • «^» — каретка, циркумфлекс или просто галочка. Начало строки;
  • «$» — знак доллара. Конец строки;
  • «.» — точка. Любой символ;
  • «*» – знак умножения, звездочка. Любое количество предыдущих символов;
  • «+» – плюс. 1 или более предыдущих символов;
  • «?» – вопросительный знак. 0 или 1 предыдущих символов;
  • «( )» – круглые скобки. Группировка конструкций;
  • «|» – вертикальная линия. Оператор «ИЛИ»;
  • «[ ]» – квадратные скобки. Любой из перечисленных символов, диапазон. Если первый символ в этой конструкции – «^», то массив работает наоборот – проверяемый символ не должен совпадать с тем, что перечислено в скобках;
  • «{ }» – фигурные скобки. Повторение символа несколько раз;
  • «\» – обратный слеш. Экранирование служебных символов.

Также существуют специальные метасимволы, ими можно заменить некоторые готовые конструкции:

  • \b — обозначает не символ, а границу между символами;
  • \d — цифровой символ;
  • \D — нецифровой символ;
  • \s — пробельный символ;
  • \S — непробельный символ;
  • \w — буквенный или цифровой символ или знак подчеркивания;
  • \W — любой символ, кроме буквенного или цифрового символа или знака подчеркивания.
  • {«0»:{«lid»:»1573230077755″,»ls»:»10″,»loff»:»»,»li_type»:»em»,»li_name»:»email»,»li_ph»:»Email»,»li_req»:»y»,»li_nm»:»email»},»1″:{«lid»:»1596820612019″,»ls»:»20″,»loff»:»»,»li_type»:»hd»,»li_name»:»country_code»,»li_nm»:»country_code»}} Истории бизнеса и полезные фишки
  • Символьные классы

    Конструкция […] это один символ целевого текста.

    gr[ae]y — выберет все слова gray и grey.

    sep[ae]r[ae]te — выберет все слова separate, seperate, separete, seperete.

    Дефис в контексте символьного класса заменяет перечисление символов по порядку (интервал). Интервалы можно объединять с литералами.

    [0-9a-fA-F] — один любой шестнадцатеричный символ.

    <Н[1-3]> — совпадает с последовательностями <H1>, <H2>, <H3>

    Инвертирование символьного класса производится конструкцией [^…] что означает, здесь один символ который не совпадает с перечисленным набором или интервалом.

    . — (точка) это сокращённая форма символьного класса совпадающая с любым символом.

    Практика регулярных выражений

    Давайте попрактикуемся в некоторых концепциях, которые мы узнали выше.

    Составьте выражение, которое соответствует любому 10-значному числу:

    ВыполСтрока код » Скрыть результаты

    Давайте разберемся с этим и посмотрим, что там происходит.

    1. Если мы хотим добиться, чтобы совпадение охватывало всю строку, мы можем добавить квантификаторы ^и $. Каретка ^ соответствует началу входной строки, а знак доллара $соответствует ее концу. Таким образом, шаблон не будет соответствовать, если строка содержит более 10 цифр.
    2. \d соответствует любому цифровому символу.
    3. {10}совпадает с предыдущим выражением, в данном случае \dровно 10 раз. Таким образом, если тестовая строка содержит менее или более 10 цифр, результат будет ложным.

    Сопоставьте дату со следующим форматом DD-MM-YYYY или DD-MM-YY

    var regex = /^(\d{1,2}-){2}\d{2}(\d{2})?$/; ((’01-01-1990′)); («»); // true ((’01-01-90′)); («»); // true ((’01-01-190′)); // false ВыполСтрока код » Скрыть результаты

    Давайте разберемся с этим и посмотрим, что там происходит.

    1. Опять же, мы обернули все регулярное выражение внутрь ^ и $, так что совпадение охватывает всю строку.
    2. ( начало первого подвыражения.
    3. \d{1,2} соответствует минимум 1 цифре и максимум 2 цифрам.
    4. — соответствует буквальному дефису.
    5. ) конец первого подвыражения.
    6. {2} соответствовать первому подвыражению ровно два раза.
    7. \d{2} соответствует ровно двум цифрам.
    8. (\d{2})?соответствует ровно двум цифрам. Но это необязательно (знак ?), поэтому год состоит из 2 или 4 цифр.

    Выражение, которое соответствует чему угодно, кроме новой строки

    Выражение должно соответствовать любой строке с форматом, например , где каждая переменная a, b, c, d, e, f, g, h, i, j, k, l может быть любым символом, кроме новой строки.

    var regex = /^(.{3}\.){3}.{3}$/; ((»)); («»); // true ((»)); («»); // false ((»)); // true ВыполСтрока код » Скрыть результаты

    Давайте разберемся с этим и посмотрим, что там происходит.

    1. Мы обернули все регулярное выражение внутрь ^ и $, так что совпадение охватывает всю строку.
    2. ( начало первого подвыражения
    3. .{3} соответствует любому символу, кроме новой строки, ровно 3 раза.
    4. \. соответствует буквальной . точке
    5. ) конец первого подвыражения
    6. {3} соответствует первому подвыражению ровно 3 раза.
    7. .{3} соответствует любому символу, кроме новой строки, ровно 3 раза.

    Задачи для закрепления знаний по регулярным выражениям

    ← предыдущая следующая →

    Удаленное управление на PowerShell

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

    Существует несколько способов удаленного управления:

    • С помощью параметра –ComputerName (есть у многих команд). Другими словами Вы передаете имя компьютера, на котором необходимо выполнить команду, в качестве параметра. Способ обладает недостатком, так как ограничивается выполнением одной команды;
    • С помощью сессий. Командлет Enter-PSSession (интерактивный сеанс). Таким способом Вы подключаетесь к удаленному компьютеру и все команды, которые Вы будете набирать в оболочке PowerShell, будут выполняться на удаленном компьютере так же, как если бы Вы набирали команды непосредственно на удаленном компьютере. Способ также обладает недостатком, так как сеанс ограничивается одним компьютером;
    • С помощью командлета Invoke-Command. С помощью данного способа можно выполнять команды или сценарии как на одном компьютере, так и на нескольких.

    Например, чтобы подключиться к удаленному компьютеру (в примере ниже ServerName) интерактивным сеансом выполните следующую команду:

    Enter-PSSession ServerName

    Ключевое слово флаги

    Ниже приведен пример для , но это работает для большинства функций в re модуле.

    m = («b», «ABC») m is None # Out: True m = («b», «ABC», flags=) () # Out: ‘B’ m = («a.b», «A\nBC», flags=) m is None # Out: True m = («a.b», «A\nBC», flags=|) () # Out: ‘A\nB’

    Общие флаги

    Флаг  Краткое описание   , re.I  Заставляет шаблон игнорировать случай   , re.S  Делает . сопоставить все, включая переводы строк   , re.M  Делает ^ соответствовать началу строки и $ конца строки     Включает отладочную информацию

    Для полного списка всех доступных флагов проверить документы

    Читайте также:  Как удалить, установить, переустановить Магазин в Windows 10
    Современная техника - портал Миникод