python实现 字符串匹配函数
Python 实现 函数 字符串 匹配
2023-09-27 14:28:47 时间
通配符是 shell 命令中的重要功能,
? 表示匹配任意 1 个字符,
*表示匹配 0 个或多个字符。
请使用你熟悉的编程语言实现一个字符串匹配函数,
支持 ? 和 * 通配符。如 “a?cd*d” 匹配 “abcdaccd”
1 #coding:utf8
2 '''
3 通配符是 shell 命令中的重要功能,
4 ? 表示匹配任意 1 个字符,
5 *表示匹配 0 个或多个字符。
6 请使用你熟悉的编程语言实现一个字符串匹配函数,
7 支持 ? 和 * 通配符。如 “a?cd*d” 匹配 “abcdaccd”
8 '''
9
10 def solution( re_str,test_str ):
11 # 如果两个字符串相等 就返回True
12 if re_str == test_str :
13 return True
14 # 标记第一个字母
15 r = re_str[0] if re_str != '' else ''
16 t = test_str[0] if test_str !='' else ''
17 # r 不是? 也 不是* 的情况
18 if r != '?' and r != '*' :
19 if r != t : # 如果不想相等就返回False
20 return False
21 else : # 相等 就 删掉第一个单词 递归
22 re_str,test_str = re_str[1:],test_str[1:]
23 return solution( re_str,test_str )
24 # 如果r是? 相当于匹配一个字符 都删掉一个字符 然后 递归
25 if r == '?' :
26 re_str, test_str = re_str[1:], test_str[1:]
27 return solution(re_str, test_str)
28 # 如果r是* re 是n个* 则返回True
29 if r == '*' and re_str.strip('*') == '' :
30 return True
31 # 否则 就是包含* ,*匹配0个字符或多个字符,所以我们返回 递归 0个匹配 与 1个匹配 的逻辑或
32 return solution(re_str[1:], test_str) or solution(re_str, test_str[1:])
33
34
35
36 if __name__ == '__main__':
37 re_str = "a?*cd*d*"
38 test = "abcdaccd"
39 res = solution( re_str,test )
40 print(res)
相关文章
- python方式实现scoket通信
- Python&JS宏 实现保留样式合并表格后拆分
- [码尚教育]Python全栈自动化VIP课程对标大厂标准(挑战年薪40万)
- 11 python - if else / elif / if嵌套
- Python测试框架Pytest的基础入门
- 取模%公式, Python的特殊性
- Python: file IO
- Python 实现Windows开机运行某软件
- python中顺序查找分析和实现
- python 第三库卸载办法
- 基于Python实现支持向量机的物体识别【100010253】
- 终于,手把手教会 HR 实现 Python + Excel 「邮件自动化」发工资条了
- Python for循环内部实现的一个sample
- (数据科学学习手札34)多层感知机原理详解&Python与R实现
- OpenSSL和Python实现RSA Key公钥加密私钥解密
- python语言绘图:绘制贝叶斯方法中最大后验密度(Highest Posterior Density, HPD)区间图的近似计算(续)
- 对线性模型进行最小二乘法学习的实例(使用三角多项式基函数 Python实现)
- 【华为机试真题 Python实现】2023年1、2月高频机试题
- 用python做测试实现高性能测试工具(3)—优化系统架构
- 小学生python游戏编程arcade----动画图片实现爆炸效果
- 学习笔记(05):Python网络编程&并发编程-基于socket实现简单套接字通信
- Selenium4 Python实现Page Factory设计模式,python新的定位方法