如何用正则表达式提取网页中的cookie信息?
- 内容介绍
- 文章标签
- 相关推荐
本文共计169个文字,预计阅读时间需要1分钟。
javapublic static String getCookieValue(String cookies, String key) { String[] cookiePairs=cookies.split(;); for (String pair : cookiePairs) { String[] entry=pair.split(=); if (entry[0].trim().equals(key)) { return entry[1].trim(); } } return null;}
解决从类似这样的字符串 c=1;b=12;a=123 中获取b属性的值12/** * 获取cookie的值 * @param cookies * 类似这样的字符串: * c=1;b=12;a=123 * @param key * @return */ public static String getCookieValue(String cookies, String key) { Pattern pattern = Pattern.compile(key + "[\\s]*=[\\s]*([^;\\s]{1,})"); Matcher matcher = pattern.matcher(cookies); if(matcher.find()){ if(matcher.groupCount() == 1){ return matcher.group(1); } } return null; } 测试
public static void main(String[] args) { System.out.println(getCookieValue("c=1;b=12;a=123","b")); System.out.println(getCookieValue("c= 1 ; b= 12 ; a= 123","b")); System.out.println(getCookieValue("c= 1 ; b = 12 ; a= 123;;","a")); System.out.println(getCookieValue("c=bbbb;b=12;a=123","b")); }
本文共计169个文字,预计阅读时间需要1分钟。
javapublic static String getCookieValue(String cookies, String key) { String[] cookiePairs=cookies.split(;); for (String pair : cookiePairs) { String[] entry=pair.split(=); if (entry[0].trim().equals(key)) { return entry[1].trim(); } } return null;}
解决从类似这样的字符串 c=1;b=12;a=123 中获取b属性的值12/** * 获取cookie的值 * @param cookies * 类似这样的字符串: * c=1;b=12;a=123 * @param key * @return */ public static String getCookieValue(String cookies, String key) { Pattern pattern = Pattern.compile(key + "[\\s]*=[\\s]*([^;\\s]{1,})"); Matcher matcher = pattern.matcher(cookies); if(matcher.find()){ if(matcher.groupCount() == 1){ return matcher.group(1); } } return null; } 测试
public static void main(String[] args) { System.out.println(getCookieValue("c=1;b=12;a=123","b")); System.out.println(getCookieValue("c= 1 ; b= 12 ; a= 123","b")); System.out.println(getCookieValue("c= 1 ; b = 12 ; a= 123;;","a")); System.out.println(getCookieValue("c=bbbb;b=12;a=123","b")); }

