需求:1.匹配字符中前部分需要匹配一定的模式;
2.字符串后需要匹配一定的模式,但不包括在匹配字符串中
例子:查找一段目录,目录结构不定,但是要目录固定(假设放在resources下面),现需要将文件所在的目录匹配
正则表达式:resources.*/(?=.*\.)
含义:以resources开头的,中间任意字符串,并且以"/"结尾,后面但是任意字符后紧跟"."的字符串
分析:现有字符串"resources/img/data.fle",由于"/"没有指定匹配的次数,所以会最大程度匹配,即往后匹配,遇到了data.满足".*\.",所以返回匹配字符串
注:本例子仅仅为了抛砖引玉,在此处可能用下面代码更显方便
String str = "resources/img/data.fle";
return str.substring(0,str.lastIndexOf("/"));