java 代码
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class Test2 {
public static void main(String[] args) {
System.out.println(getMatcherStr("abc=def=ghi=gk", ".*=")); //abc=def=ghi=
// 当?字符紧跟在任何一个其他限制符 (*, +, ?, {n}, {n,}, {n,m}) 后面时,匹配模式是非贪婪的。
// 非贪婪模式尽可能少的匹配所搜索的字符串,而默认的贪婪模式则尽可能多的匹配所搜索的字符串。
System.out.println(getMatcherStr("abc=def=ghi=gk", ".*?=")); //abc=
System.out.println(getMatcherStr1("abc=def=ghi=gk", "(.*)=")); //abc=def=ghi
// 非贪婪模式
System.out.println(getMatcherStr1("abc=def=ghi=gk", "(.*?)=")); //abc
String url = "http://mp.weixin.qq.com/s?__biz=MzA4NDI3NjcyNA==&mid=2649510587&idx=1&sn=1ef899baa603919ed02b383a73f6fb8b&chksm=87f15620b086df3693479efd6f6a1f3391e2e825799ea8b85029bc20cf8f343ad65d2921cc93&scene=38#wechat_redirect";
System.out.println(getMatcherStr1(url, "biz=(.+?)&")); //MzA4NDI3NjcyNA==
System.out.println(getMatcherStr1(url, "mid=(.+?)&")); //2649510587
System.out.println(getMatcherStr1(url, "idx=(.+?)&")); //1
}
private static String getMatcherStr(String content, String sPattern) {
Pattern p = Pattern.compile(sPattern);
Matcher m = p.matcher(content);
if(m.find()){
return m.group();
}
return null;
}
private static String getMatcherStr1(String content, String sPattern) {
Pattern p = Pattern.compile(sPattern);
Matcher m = p.matcher(content);
if(m.find()){
return m.group(1);
}
return null;
}
}