用函数实现匹配包含‘*’和‘.’的正则表达式。
测试用例:
功能测试:多个‘*’或‘.’
特殊值测试:空指针
#include<iostream>
#include<string.h>
using namespace std;
bool matchCore(const char* str,const char* pattern)
{
if(*str=='\0'&&*pattern=='\0')
return true;
if(*str!='\0'&&*pattern=='\0')
return false;
if(*(pattern+1)=='*')
{
if(*str==*pattern||(*pattern=='.'&&*str!='\0'))
return matchCore(str+1,pattern+2)||matchCore(str+1,pattern)||matchCore(str,pattern+2);
//匹配一次,多次,零次
else
return matchCore(str,pattern+2);
}
if(*str==*pattern||(*pattern=='.'&&*str!='\0'))
return matchCore(str+1,pattern+1)