您的位置:首页 > 编程语言 > Python开发

Python :正则表达式匹配

2017-07-12 17:22 459 查看
牛客网上的剑指 offer的在线编程:


题目描述

请实现一个函数用来匹配包括'.'和'*'的正则表达式。模式中的字符'.'表示任意一个字符,而'*'表示它前面的字符可以出现任意次(包含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
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: