正则表达式匹配
来源:互联网 发布:nginx访问日志分析 编辑:程序博客网 时间:2024/06/18 02:13
请实现一个函数用来匹配包括’.’和’‘的正则表达式。模式中的字符’.’表示任意一个字符,而’‘表示它前面的字符可以出现任意次(包含0次)。 在本题中,匹配是指字符串的所有字符匹配整个模式。例如,字符串”aaa”与模式”a.a”和”ab*ac*a”匹配,但是与”aa.a”和”ab*a”均不匹配
/** 有以下情况: 1.两个字符串如果都是空,返回true 2.当第一个不空第二个字符串空了,就返回false; 3. 开始匹配: (1):如果pattern 下一个字符不是'*'; 直接匹配当前字符: 如果匹配成功(一种是字符相等,还有一种是pattern字符是'.'),继续匹配下一个字符; 如果匹配失败, return false; (2):如果pattern 下一个字符是'*'; i:当 '*'匹配0个字符,pattern字符后移两位: ii:当匹配一个或多个时,str当前字符移动到下一个,pattern当前字符不变;(下一次相当上面步骤(i)) */class Solution { public: bool match(char* str, char* pattern) { if (*str == '\0' && *pattern == '\0') return true; if (*str != '\0' && *pattern == '\0') return false; //if the next character in pattern is not "*"; if (*(pattern+1) != '*') { if (*str == *pattern || (*str != '\0' && *pattern == '.')) return match(str+1, pattern+1); else return false; } else // if the next character is "*"; { if (*str == *pattern || (*str != '\0' && *pattern == '.')) return match(str, pattern+2) || match(str+1, pattern); else return match(str, pattern+2); } }};
阅读全文
0 0
- 正则表达式字符匹配
- 正则表达式 匹配"<"方法!
- 正则表达式匹配规则
- 正则表达式匹配规则
- 正则表达式最小匹配
- 正则表达式匹配字符串
- 正则表达式匹配
- 正则表达式匹配汉字
- 正则表达式匹配规则
- 正则表达式匹配关键字
- 正则表达式多次匹配
- 正则表达式匹配
- 正则表达式匹配汇总
- java:正则表达式匹配
- 正则表达式匹配居民身份证
- 正则表达式匹配次
- 匹配的正则表达式
- 正则表达式匹配
- 刮刮乐
- javaWeb 原生图书管理系统
- 人脸检测(三)——Multi-task CNN(MTCNN)
- 第二十六节数据库连接池
- 一个标准的JavaBean应该具有如下几个特点
- 正则表达式匹配
- 信息论:熵与互信息
- hihocoder1586 Minimum 2017icpc北京赛区 线段树区间最值
- ML特遣队
- CSS 动画(Animation)单一变换
- Delphi DataSet和JSON互转函数
- Googel hack
- 关于人工智能的一些想法
- 正则表达式中常用表达式