Python 如何使用或执行正则表达式

Python 如何使用或执行正则表达式,python,Python,有两个基于设备的输入,它需要匹配使用或的任何输入,并给出版本输出,如7.0.3I4.6或7.1.4.N1.1 输入-1 NXOS映像文件是:bootflash:///nxos.7.0.3.I4.6.bin 投入-2 kickstart映像文件是:bootflash:///n6000-uk9-kickstart.7.1.4.N1.1.bin 系统映像文件为:bootflash:///n6000-uk9.7.1.4.N1.1.bin 请建议如何使用Or和正则表达式进行筛选 尝试 regex_vers

有两个基于设备的输入,它需要匹配使用或的任何输入,并给出版本输出,如7.0.3I4.6或7.1.4.N1.1

输入-1 NXOS映像文件是:bootflash:///nxos.7.0.3.I4.6.bin

投入-2 kickstart映像文件是:bootflash:///n6000-uk9-kickstart.7.1.4.N1.1.bin 系统映像文件为:bootflash:///n6000-uk9.7.1.4.N1.1.bin

请建议如何使用Or和正则表达式进行筛选

尝试

regex_version = re.compile(r'(NXOS:\sversion\s(\S+))|(kickstart:\sversion\s(\S+))')

version = regex_version.findall(input)
regex_version = re.compile(r'(NXOS:\sversion\s(\S+))|(kickstart:\sversion\s(\S+))')

version = regex_version.findall(input)

尝试

regex_version = re.compile(r'(NXOS:\sversion\s(\S+))|(kickstart:\sversion\s(\S+))')

version = regex_version.findall(input)
regex_version = re.compile(r'(NXOS:\sversion\s(\S+))|(kickstart:\sversion\s(\S+))')

version = regex_version.findall(input)
输出: [('NXOS:Version7.0(3)I4(6)','7.0(3)I4(6)',','') [('','kickstart:Version7.1(4)N1(1)','7.1(4)N1(1)']


如何根据输入过滤7.0(3)I4(6)和7.1(4)N1(1)

使用
|
(OR)操作符非常简单:

regex_version = re.compile(r'(NXOS:\sversion\s(\S+)|kickstart:\sversion\s(\S+))')

关键是OR运算符在两个术语之间移动,没有分隔括号或括号

Try:
regex\u version=re.compile(r'(NXOS:\sversion\s(\s+)| kickstart:\sversion\s(\s+))
必须在组中
()
我获得的输出可能重复如下[('NXOS:Version7.0(3)I4(6)','7.0(3)I4(6)',')[('kickstart:Version7.1(4)N1(1)','7.1(4)N1(1)')]