首页 > 解决方案 > 将 2 个正则表达式函数合并为 1 个函数

问题描述

我正在学习正则表达式课程,为了更容易,我创建了 2 个函数。第一个是for re.findall,第二个是for re.search。有没有一种简单的方法可以结合这两个功能,所以我只有一个?

import re

def ans_findall(num,reg):
    data = open(r'2020_REGEX_COURSE/Ex_Files/regex'+num+'.txt', encoding='utf-8').read()
    data = re.findall(reg,data, re.MULTILINE)
    return data

def ans_search(num,reg):
    data = open(r'2020_REGEX_COURSE/Ex_Files/regex'+num+'.txt', encoding='utf-8').read()
    data = re.search(data, re.MULTILINE)
    return data

标签: pythonpython-3.x

解决方案


我的第一个建议是在不使用函数的情况下获取您想要工作的代码。我会假设你已经做到了。我怀疑您的问题更多是关于如何从单个函数返回两个值。

def find_data(filename, pattern):
    with open(filename,'r', encoding='utf-8') as file_handle:
        data = file_handle.read()
    search_result  = re.search( data, pattern, re.MULTILINE)
    findall_result = re.findall(data, pattern, re.MULTILINE)
    return search_result, findall_result

num=str(5)
search_result, findall_result = find_data(
        '2020_REGEX_COURSE/Ex_Files/regex'+num+'.txt', 'someregexhere')

推荐阅读