因程序中要用到通配符匹配方法 ,网上找了一些,不如人意,就自己动手写了一个方法。
以param="/*test/find*haha*kk", realData="/88test/find8888haha8888kk"做验证,没有问题,其它更简单的方式也验证通过,如果读者发现有问题,欢迎指正。
强调一下:这里不是正则表达式匹配,是通配符匹配。
public Boolean judge(final String param, final String realData) {
if(! Pattern.matches(param, realData)){
if(param.contains("*")) {
String noParam=param.replaceAll("\\*","");
if (realData.contains(noParam)){
return true;
}else{
if(noParam.length()>realData.length())
return false;
String[] myparam=param.split("\\*");
int curIndex=0;
int prePostion=0;
int num=0;
for(String duan:myparam){
num++;
curIndex=realData.indexOf(duan);
if(curIndex==-1)return false;
if(curIndex>=prePostion){
prePostion=curIndex+duan.length();
if(num==myparam.length)return true;
}else{
return false;
}
}
}
}
return false;
}
return true;
}
分享到:
相关推荐
带通配符的字符串匹配算法,带通配符的字符串匹配算法
C++实现字符串匹配函数,匹配中可以包括通配符
vc 带通配符的字符串匹配算法实例源代码,用"*" 和 "?"进行字符串的匹配查找。直接拷贝代码就能使用。部分函数功能:带通配符的字符串匹配 参数:lpszSour是一个普通字符串; lpszMatch是一可以包含通配符的...
vc++ 带通配符的字符串匹配算法实例源代码,用"*" 和 "?"进行字符串的匹配查找。直接拷贝代码就能使用。部分函数功能:带通配符的字符串匹配 参数:lpszSour是一个普通字符串; lpszMatch是一可以包含通配符的...
vc++ 带通配符的字符串匹配算法实例源代码 复制代码就能用
Java 通过通配符查找文件 例如:*.*, *.java, a*.*, a*.java
带通配符的字符串匹配.zip
正则表达式通配符.jpg正则表达式通配符.jpg正则表达式通配符.jpg正则表达式通配符.jpg正则表达式通配符.jpg正则表达式通配符.jpg
vc 支持通配符的字符串匹配算法函数用法实例,作者: 苗人头领,使用方法: 直接拷贝代码,里面有几个字符串处理函数,这些函数全部都支持带通配符的字符串匹配、多重匹配、查找字符串,还有KMP算法、求与等。
输入描述:先输入一个带有通配符的字符串,再输入一个需要匹配的字符串输出描述:返回匹配的结果,正确输出 true,错误输出 false示例 1输入输出bool m
vc++ 带通配符的字符串匹配算法实例源代码,用"*" 和 "?"进行字符串的匹配查找。直接拷贝代码就能使用。部分函数功能:带通配符的字符串匹配
比较初级的C++代码,带通配符的字符串匹配,函数递归题
在文件中找特定字符串(含通配符):找子串(含通配符)使用C++的读文件,然后把数据读到String中,然后进行匹配。。。
字符串匹配算法的实现:CPU vs.GPU vs.FPGA.pdf
允许搜索字符串的元胞数组内容。 搜索字符串可以包含“*”和“?” 通配符。 该函数仅返回匹配行的索引号。 此功能适用于 Richard Stephens (ristephens@theiet.org) v1.2 2007/03/01 开发的 WILDSEL GUI 中的命令行...
一个字符串的类. 唯一值得用的是里面集成的 KMP 算法字符串查找和字符串比较功能, 我写 linux 程序时用它来分析命令行.
一个字符串匹配、查找替换算法的代码,支持各种通配符
使用KMP算法实现c++的字符串匹配,并且可以试验模糊匹配,即模板包含*或者?
通配符字符串匹配字符串匹配,其中一个字符串包含通配符( )