我想获取某处包含“反馈报告”的所有“xlsx”文件。我想让这个过滤器非常强大。因此,任何部分匹配,如“feedback_report”、“feedback report”、“Feedback Report”都应返回 true。
示例文件名:
- ZSS Project_JKIAL-SA_FEEDBACK_REPORT_Jan 29th 2015.xlsx
- ZL-SA_feedback report_012844.xlsx
- ASARanem-SA_Feedback Report_012844.xlsx
下面是徒劳的尝试。
regex = re.compile(r"[a-zA-Z0-0]*[fF][eE][eE][dD][bB][aA][cC][kK]\s[rR][eE][pP][oO][rR][tT][a-zA-Z0-0]*.xlsx")
请您参考如下方法:
这会起作用:
re.search("(feedback)(.*?|\s)(report)",string,re.IGNORECASE)
使用代码在以下输入列表上对其进行了测试
import re
a=["ZSS Project_JKIAL-SA_FEEDBACK_REPORT_Jan 29th 2015.xlsx",
"ZL-SA_feedback report_012844.xlsx",
"ASARanem-SA_Feedback Report_012844.xlsx",
"some report",
"feedback-report"]
for i in a:
print(re.search("(feedback)(.*?|\s)(report)",i,re.IGNORECASE))
OP 预期的输出是:
<_sre.SRE_Match object; span=(21, 36), match='FEEDBACK_REPORT'>
<_sre.SRE_Match object; span=(6, 21), match='feedback report'>
<_sre.SRE_Match object; span=(12, 27), match='Feedback Report'>
None
<_sre.SRE_Match object; span=(0, 15), match='feedback-report'>
