📅  最后修改于: 2023-12-03 15:42:14.580000             🧑  作者: Mango
GATE (Graduate Aptitude Test in Engineering) 是印度国家考试中心 (National Coordination Board - GATE) 主办的全国性研究生入学考试,考核工程科学和技术、人文科学和其他领域的学术知识和技能等方面的能力。GATE MOCK 2017 是一项模拟考试,完全按照 GATE 2017 的格式和难度程度设计。
这里提供了 GATE MOCK 2017 的第37章考题,主要是针对程序员的知识点和能力要求。希望程序员们能通过认真阅读和尝试本题,不仅能够提高自己的编程技能,同时也能够为 GATE 2017 的应对和相关职业生涯打下坚实的基础。
请编写一个 Python 函数,该函数接收两个参数:一个字符串列表(str_list)和另一个字符串(pattern)。函数目标是扫描 str_list 中的每个字符串,并返回一个新的字符串列表。新的字符串列表中的每个字符串都是 str_list 中与 pattern 匹配的字符串。确定使用正则表达式,找到 pattern 与 str_list 相匹配的 any 子串。
def find_matching_strings(str_list: List[str], pattern: str) -> List[str]:
pass
find_matching_strings(['abc', 'aabc', 'abbc', 'abcc', 'aabd', 'abcd'], 'a*b*c*d')
['abc', 'aabc', 'abbc', 'abcd']
使用正则表达式,对 pattern 进行编译,编译结果保存到 re 模块中。接着使用编译后的 pattern,匹配 str_list 中的每个字符串,将匹配成功的字符串添加到新列表中。
import re
from typing import List
def find_matching_strings(str_list: List[str], pattern: str) -> List[str]:
reg = re.compile(pattern)
result = []
for s in str_list:
if re.match(reg, s):
result.append(s)
return result
返回的代码片段按markdown标明。