修改函数以检查一对子字符串

2024-10-05 14:21:37 发布

您现在位置:Python中文网/ 问答频道 /正文

我目前有一个函数,用于检查数据库作业中是否存在子字符串-名字。那个函数的输入是标准子字符串列表和数据库作业名称列表。你知道吗

import re
substrings = {'archivebackup.b', 'logbackup.b', 'fullbackup.b', 'dailybackup.b'}
joblist=['ora123.archivebackup.b','ora123.logbackup.b','ora123.fullbackup.b','ora123.dailybackup.b']

FIND_FILE = re.compile('|'.join(s for s in substrings))
matches = set()
for job in joblist:
    match = FIND_FILE.search(job)
    if match:
        print(match.group(0), "found")
        matches.add(match.group(0))
m=substrings - matches
print("Missing:", substrings - matches)

此功能工作正常,我得到以下o/p:

archivebackup.b found
logbackup.b found
fullbackup.b found
dailybackup.b found
Missing: set()

现在我想修改这个函数,这样它也会获取一个数据库名称列表,并检查每个作业中数据库名称和子字符串的组合,如果缺少任何子字符串,则将o/p作为数据库名称和作业名称。你知道吗

dbname=['ora123','ora456']

我尝试了下面的方法,它在显示丢失的作业方面部分工作正常。你知道吗

FIND_FILE = re.compile('|'.join(s for s in substrings))
FIND_FILE1 = re.compile('|'.join(d for d in dbname))
matches = set()
for db in dbname:
    for job in joblist:
        match = FIND_FILE1.search(job)
        if match:
            print(match.group(0), "found")
            matches.add(match.group(0))
m=substrings - matches
print("Missing:", substrings - matches)

Tags: 字符串inre名称数据库formatch作业