python - 将 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
解决方案
我的第一个建议是在不使用函数的情况下获取您想要工作的代码。我会假设你已经做到了。我怀疑您的问题更多是关于如何从单个函数返回两个值。
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')