Python Регулярное выражение для вывода KVM из списка sh - все - PullRequest
0 голосов
/ 08 января 2020

Я пытаюсь создать регулярное выражение Python, которое принимает слова, отвечающие следующим требованиям:

  1. префикс слова ( ДОЛЖЕН быть в начале новая строка ): "(число)" (пробел, число, а затем 5 пробелов)

  2. суффикс слова: "" (пробел)

Пример ввода:

 Id    Name                           State
----------------------------------------------------
 1     VM1      running
 2     VM2      running
 3     KVM3     running

Вывод: {VM1, VM2, KVM3}

Я очень плохо знаком с Regex, и то, что я получил до сих пор это:

re.findall("(?<!\S)\S+(?!\S)")

, который дает мне слова, которые начинаются и заканчиваются: ""

1 Ответ

0 голосов
/ 09 января 2020

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

Вот решение на Regex101.com . Вы можете использовать Regex101.com в качестве игровой площадки для тестирования решений. Это также дает вам руководство о том, как интерпретируется введенное вами регулярное выражение.

Регулярное выражение ^\s+?\d+\s+([^\s]+)

  • ^ начинается в начале строки и любой последующей строки .
  • \s+? соответствует необязательному начальному пробелу
  • \d+ соответствует любому количеству цифр
  • \s+ соответствует любому количеству пробелов
  • ([^\s]+) захватить всю строку, разделенную пробелом
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...