Python :正则表达式匹配
2017-07-12 17:22
459 查看
牛客网上的剑指 offer的在线编程:
请实现一个函数用来匹配包括'.'和'*'的正则表达式。模式中的字符'.'表示任意一个字符,而'*'表示它前面的字符可以出现任意次(包含0次)。 在本题中,匹配是指字符串的所有字符匹配整个模式。例如,字符串"aaa"与模式"a.a"和"ab*ac*a"匹配,但是与"aa.a"和"ab*a"均不匹配
题目描述
请实现一个函数用来匹配包括'.'和'*'的正则表达式。模式中的字符'.'表示任意一个字符,而'*'表示它前面的字符可以出现任意次(包含0次)。 在本题中,匹配是指字符串的所有字符匹配整个模式。例如,字符串"aaa"与模式"a.a"和"ab*ac*a"匹配,但是与"aa.a"和"ab*a"均不匹配# -*- coding:utf-8 -*- class Solution: # s, pattern都是字符串 def match(self, s, pattern): # write code here if s is None and pattern is None: return False return self.pre_mat(s, pattern) def pre_mat(self, s, pattern): if s == '' and pattern == '': return True if s != '' and pattern == '': return False if len(pattern) >= 2 and pattern[1] == '*': if s != '' and (pattern[0] == '.' or pattern[0] == s[0]): return self.pre_mat(s[1: ], pattern) or self.pre_mat(s[1: ], pattern[2: ]) or \ self.pre_mat(s, pattern[2: ]) else: return self.pre_mat(s, pattern[2: ]) if s != '' and pattern[0] == s[0] or pattern[0] == '.' and len(s) != 0: return self.pre_mat(s[1: ], pattern[1: ]) else: return False
相关文章推荐
- Python:正则表达式匹配任意字符(包括换行符)的写法
- Python中的正则表达式匹配中文问题
- python 正则表达式:匹配字符串开头并打印
- 匹配ip地址的python正则表达式,以及常用的正则表达式
- 匹配图像标签的正则表达式(Javascript和Python版)
- Python 匹配任意字符(包括换行符)的正则表达式写法
- python类库31[正则表达式匹配实例]
- python非贪婪、多行匹配正则表达式例子
- [Python]利用正则表达式匹配 C语言函数定义/声明
- 用python做含有中文的正则表达式模式匹配
- python非贪婪、多行匹配正则表达式例子[转载]
- PyCon 2011 - Hidden Treasures of the Python Standard Library - 邮件地址正则表达式匹配
- python正则表达式匹配sql语句中的表名
- Python正则表达式的几种匹配用法
- python正则表达式匹配中文
- Python中正则表达式对中文的匹配问题
- python正则表达式匹配中文
- Python正则表达式的用法(1. 匹配)
- Python 正则表达式(模式匹配)
- python正则表达式之贪婪引发的匹配无法退出,CPU 100%