regex 为什么我的Python正则表达式找不到第二个组?

2cmtqfgy  于 2023-08-08  发布在  Python
关注(0)|答案(1)|浏览(75)

我有一些数据,我正在运行一个正则表达式脚本:

data = ['python3 wrapper.py -c config/app_profile_adh_bus_trans_jrnl --env TABLE_LIST_FILE=config/adh_bus_trans_jrnl_all_tables/bus_trans_jrnl_all_tables.dat --env ENV=PROD -r|Up 25 minutes', 'python3 wrapper.py -c config/app_profile_azure --env TABLE_LIST_FILE=config/azure/arcadia_azure_ingest.dat --env ENV=PROD -r|Up 25 minutes']

table_list_names = [ re.search(r".*TABLE_LIST_FILE.*/(.*).dat.*|(.*)", element).groups() for element in data if "TABLE_LIST_FILE" in element ]
print(table_list_names)

字符串
这只是打印以下内容:

[('bus_trans_jrnl_all_tables', None), ('arcadia_azure_ingest', None)]


好奇是否有人可以提供输入,为什么我的regex第二捕获组没有得到任何东西?

ukdjmx9f

ukdjmx9f1#

您的代码与此相同。
除非TABLE_LIST_FILE在元素中,否则您甚至不执行正则表达式。
因此,消除了交替。

import re

data = ['python3 wrapper.py -c config/app_profile_adh_bus_trans_jrnl --env TABLE_LIST_FILE=config/adh_bus_trans_jrnl_all_tables/bus_trans_jrnl_all_tables.dat --env ENV=PROD -r|Up 25 minutes', 'python3 wrapper.py -c config/app_profile_azure --env TABLE_LIST_FILE=config/azure/arcadia_azure_ingest.dat --env ENV=PROD -r|Up 25 minutes']

table_list_names = re.findall(r"TABLE_LIST_FILE.*/(.*).dat", element) for element in data
print(table_list_names)

字符串
产出

[('bus_trans_jrnl_all_tables',), ('arcadia_azure_ingest',)]

相关问题