多个Regex表达式

jhdbpxl9  于 2023-05-08  发布在  其他
关注(0)|答案(1)|浏览(103)

我有一个像下面这样的文本:

CpuUtilization[GqIF:CA-TORONTO-1-AD-1 | FAULT-DOMAIN-1 | ocid1.image.oc1.ca-toronto-1.aaaaaaaanzxg2lycvtpzgobswpp3kht3byzc4kduvbuzks7u65r5zlyrzdaq | Default | ca-toronto-1 | Bastion | ocid1.instance.oc1.ca-toronto-1.an2g6ljrwe6j4fqcnimiwc5wkneq7x6zcd4m23emiv7scbx47za7bpht54la | VM.Standard.E3.Flex]

我想从相同的表达式中提取多个文本,如CA-TORONTO-1-AD-1BastionVM.Standard.E3.Flex
我可以使用表达式提取单个元素

^(?:[^|]+ \| ){5}([^ ]+).*$

问题是,如何将正则表达式组合成一个表达式?

plupiseo

plupiseo1#

正如其他人所回答的,下面是如何连接正则表达式:^(?:[^|]+|){1}([^|]+)|[^|]+|[^|]+|[^|]+|([^|]+)|[^|]+|([^|]+)]

import re   
matches = re.search(r"^(?:[^|]+ \| ){1}([^|]+) \| [^|]+ \| [^|]+ \| 
              [^|]+ \| ([^|]+) \| [^|]+ \| ([^|]+)\]", string)
if matches:
   my_data_values_grp = [matches.group(1), matches.group(2), 
                                                matches.group(3)]
   print(data)

相关问题