Python 正则表达式将 KVM 从 virsh 列表中获取 --all



我正在尝试构建一个Python正则表达式,该表达式采用满足以下要求的单词:

前缀单词(
  1. 必须位于新行的开头(:"(数字("(一个空格,一个数字,然后是 5 个空格(

  2. 单词的后缀:"(空格(

示例输入:

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

输出: {VM1, VM2, KVM3}

我对正则表达式很陌生,到目前为止我得到的是:

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

这让我的单词以:">

"

以下正则表达式返回示例数据中的所有 VM 名称。 它将返回以数字开头的行上的任何名称。

这是 Regex101.com 的解决方案。 您可以将 Regex101.com 用作测试解决方案的游乐场。 它还为您提供有关如何解释您输入的正则表达式的指导。

正则表达式^s+?d+s+([^s]+)

  • ^从字符串和任何后续行的开头开始。
  • s+?匹配可选的前导空格
  • d+匹配任意位数
  • s+匹配任意数量的空格
  • ([^s]+)捕获由空格分隔的整个字符串

最新更新