正则表达式的匹配,还是挺难的。可根据下一个字符是不是*分为两种情况处理,需要考虑多种情况。

bool isMatch(const char *s, const char *p)
{
if (*p == '\0')return *s == '\0'; //如果下一个不是*(*可表示前一个字符的数量)
//要么当前字符匹配,要么是.,不可跳过
if (*(p + ) != '*')
{
if (*s == *p || (*p == '.' && *s != '\0'))
return isMatch(s + , p + );
else
return false;
}
else
{
//如果是*,则当前字符匹配|| 有一个为.
//因为后面是*,即使不完全匹配也没关系,跳过即可
while (*p == *s || (*p == '.' && *s != '\0'))
{
if (isMatch(s, p + ))
return true;
s++;
}
return isMatch(s, p + );
}
}

最新文章

  1. Android 面试题--Activity
  2. IOS第五天(1:取消按钮的监听和设置代理textField字数限制)
  3. Yocto 包管理 apt-get
  4. oracle查询某个用户下的所有视图
  5. BZOJ1978: [BeiJing2010]取数游戏 game
  6. smarty的学习计划(1)
  7. 【Luogu1291】百事世界杯之旅(动态规划,数学期望)
  8. C# 曲线上的点(一) 获取指定横坐标对应的纵坐标值
  9. selenium chrome在新标签页打开链接的方法
  10. Shell命令-文件及内容处理之sort、uniq
  11. ubantu搭建oj——第一天(6.11)
  12. springcloud-知识点总结(三):Hystrix & Dashboard & turbine & Zuul & SpringCloud Config
  13. ADOBE ACROBAT 去除Explorer右键菜单
  14. Linux——CentOS7安装gcc编译器详解
  15. IIS 反向代理设置
  16. centos下SVN搭建多个库文件总汇
  17. 吴裕雄 python 机器学习-NBYS(1)
  18. 企业项目开发--分布式缓存memcached(3)
  19. System V 共享内存区
  20. [CF983D]Arkady and Rectangles

热门文章

  1. cloneNode与事件拷贝
  2. mybatis的Mapper代理原理
  3. 【简单算法】17.字符串转整数(atoi)
  4. [zhuan]java发送http的get、post请求
  5. 理清一下JavaScript面向对象思路
  6. 禁用 nouveau 驱动
  7. select和epoll概念
  8. HDU5154拓扑排序
  9. IBM AppScan 安全漏洞问题修复(.net)
  10. lnmp环境不支持require 解决方法