java正则表达式匹配
来源:互联网 发布:c语言源代码大全 编辑:程序博客网 时间:2024/05/18 00:37
package offer;/* * 字符串匹配 * "."匹配任意一个字符 * "*"表示前面的字符出现任意次 */public class Match { public static void main(String[] args) { String str = "aaa"; String pattern = "b*aaaa*a*a*a*.*"; System.out.println(match(str, 0, pattern, 0)); } private static boolean match(String str, int strIndex, String pattern, int patternIndex) { //出口1 :两个字符串都到达了结尾,说明匹配成功,返回true if (strIndex >= str.length() && patternIndex >= pattern.length()) { return true; } //出口2 :模式串达到了结尾,说明匹配失败,返回false if (strIndex != str.length() && patternIndex >= pattern.length()) { return false; } //若下一个字符为'*' if (patternIndex + 1 < pattern.length() && pattern.charAt(patternIndex + 1) == '*') { if(strIndex >= str.length()){ //若匹配串已经结束 return match(str, strIndex, pattern, patternIndex + 2); } else { if (str.charAt(strIndex) == pattern.charAt(patternIndex) || (pattern.charAt(patternIndex) == '.' && strIndex != str.length()) ) { return match(str, strIndex, pattern, patternIndex + 2) ||match(str, strIndex + 1, pattern, patternIndex + 2) ||match(str, strIndex + 1, pattern, patternIndex); } else { return match(str, strIndex, pattern, patternIndex + 2); } } } //若当前字符为'.' if(strIndex >= str.length()){ //若匹配串已经结束 return false; } else{ if (str.charAt(strIndex) == pattern.charAt(patternIndex) || pattern.charAt(patternIndex) == '.') { return match(str, strIndex + 1, pattern, patternIndex + 1); } } return false; }}
阅读全文
0 0
- java:正则表达式匹配
- JAVA正则表达式匹配
- java 正则表达式 匹配
- Java正则表达式匹配
- Java正则表达式匹配
- Java正则表达式匹配
- java正则表达式匹配
- java 正则表达式 匹配 dd
- java匹配IP正则表达式
- Java 正则表达式 字符串匹配
- Java: 正则表达式匹配文件名
- java 正则表达式匹配中文
- JAVA使用正则表达式匹配
- Java 字符串匹配正则表达式
- java正则表达式匹配日期
- java 正则表达式 匹配问题
- java正则表达式的匹配
- Java 正则表达式的匹配
- 排序算法之归并排序
- 数据结构-数组
- 机器学习故事汇-决策树算法
- scala实现超限学习机(ELM)手写数字分类
- Android之点击返回键退出程序
- java正则表达式匹配
- 念念不忘的高薪,就用linux学习来回响
- mybatis中的#和$的区别? 面试经常问到!!
- 1003度度熊与邪恶大魔王(完全背包)
- 【笔记】注意力分配的一些模型
- Qt实现图片旋转
- 十进制转换二进制
- 在jdk8环境下使用dubbo-admin
- Docker中Mysql 中文乱码问题