/**
* 类功能描述
* @version
* @author flyer 2018年3月12日下午5:41:08
* @since 1.8
*/
public class MatchStrUtil {
/**
* @param args
*/
public static void main(String[] args) {
String srcText = "[{voice=boytype, picture=http://xxj.jpg},{voice=, picture=123.jpg}]";
String findText = "picture"; //结尾字符串是"}"
List<String> r1 = appearKey(srcText, findText,"}");
System.out.println( r1);
String findText1 = "voice"; //结尾字符串是","
List<String> r11 = appearKey(srcText, findText1,",");
System.out.println( r11);
}
/**
* 获取指定字符串对应的值
*
* @param srcText 源字符串
* @param findText 要查找的字符串
* @param endStr 以什么字符串结束
* @return
*/
public static List<String> appearKey(String srcText, String findText,String endStr) {
List<String> result =new ArrayList<>();
// int count = 0;
Pattern p = Pattern.compile(findText);
Matcher m = p.matcher(srcText);
while (m.find()) {
// count++;
// System.out.println(m.start());//字符串出现的开始位置
String shengyuStr =srcText.substring( m.end()+1) ;
int firstStr = shengyuStr.indexOf(endStr);
String value = shengyuStr.substring(0,firstStr);
// System.out.println(shengyuStr.substring(0,firstStr));
if(value!=null &&value.length()>0) {
result.add(value);
}
// System.out.println(m.end());//字符串出现的结束位置
}
return result;
}
}
输出
[http://xxj.jpg, 123.jpg]
[boytype]