首页 > 解决方案 > 单引号中的 Python 正则表达式版本

问题描述

鉴于下面的输入,我想要一个 Python 兼容的正则表达式,它的输出是第二个版本值......“8.20.233”。我已经尽力从许多搜索中拼凑出一个解决方案,但我似乎无法找到正确的组合。感谢您的关注。

cask 'logitech-options' do
  if MacOS.version <= :sierra
    version '7.14.77'
    sha256 'e4df55642e04139fc93d955e949bf736196a404ed067d87f8de7eb9ac9117ece'
  else
    version '8.20.233'
    sha256 '52427d5fa9f0e0508c3414906212774b7ae142450d6dcf90fe1a4d6b51449c67'
  end

标签: pythonregexversion

解决方案


您必须决定正则表达式的严格程度。几个例子:

rgx1 = re.compile(r"version +'(.+)'")              # Pretty loose.
rgx2 = re.compile(r"version +'(\d+\.\d+\.\d+)'")   # More strict.

而且您还没有给我们足够的信息来明智地区分输入文本中的两个版本号。执行此操作的适当方法取决于您的用例的具体情况。

rgx2.findall(TEXT)  # ['7.14.77', '8.20.233']

推荐阅读